Variant Object::property(const char *name) { int id = metaObject()->propertyId(name); if(id < 0) { LOG(Error, "Object '%s' of type '%s' does not have a property '%s'", this->name().data(), metaObject()->className(), name); return Variant(); } MetaProperty prop = metaObject()->property(id); if(!prop.isReadable()) { LOG(Error, "Property '%s' is not readable", name); return Variant(); } return prop.read(this); }