Revision 23337ecc
Von Christian Ehringfeld vor etwa 10 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