Revision 23337ecc
Von Christian Ehringfeld vor mehr als 8 Jahren hinzugefügt
src/entityinstancefactory.cpp | ||
---|---|---|
Entity *EntityInstanceFactory::createInstance(const char *className,
|
||
const QHash<QString, QVariant> &attributes) {
|
||
Entity *e = EntityInstanceFactory::createInstance(className);
|
||
e = EntityInstanceFactory::setAttributes(e, attributes);
|
||
EntityInstanceFactory::setAttributes(e, attributes);
|
||
return e;
|
||
}
|
||
|
||
Entity *EntityInstanceFactory::setAttributes(Entity *&e,
|
||
void EntityInstanceFactory::setAttributes(Entity *&e,
|
||
const QHash<QString, QVariant> &attributes,
|
||
QHash<QString, QMetaProperty> metaprops) {
|
||
if (e) {
|
||
... | ... | |
++iterator;
|
||
}
|
||
}
|
||
return e;
|
||
}
|
||
|
||
Entity *EntityInstanceFactory::setAttributes(Entity *&e,
|
||
void EntityInstanceFactory::setAttributes(Entity *&e,
|
||
const QHash<QString, QVariant> &attributes) {
|
||
if (!attributes.isEmpty()) {
|
||
auto metaprops = EntityHelper::getMetaProperties(e);
|
||
return EntityInstanceFactory::setAttributes(e, attributes, metaprops);
|
||
} else {
|
||
return e;
|
||
EntityInstanceFactory::setAttributes(e, attributes, metaprops);
|
||
}
|
||
}
|
||
|
||
... | ... | |
|
||
QSharedPointer<Entity> EntityInstanceFactory::castQVariant(
|
||
QVariant &entity) {
|
||
return *reinterpret_cast<QSharedPointer<Entity>*>(entity.data());
|
||
if(!entity.isNull() && entity.data()) {
|
||
return *reinterpret_cast<QSharedPointer<Entity>*>(entity.data());
|
||
} else {
|
||
return QSharedPointer<Entity>();
|
||
}
|
||
}
|
||
|
||
QStringList EntityInstanceFactory::getRegisteredClasses() {
|
Auch abrufbar als: Unified diff
bugfixxes