diff options
author | Paul Lemire <paul.lemire@kdab.com> | 2016-04-29 08:44:46 +0200 |
---|---|---|
committer | Sean Harmer <sean.harmer@kdab.com> | 2016-05-25 14:44:10 +0000 |
commit | 4025b815cc629b18c0517fd83aef9c41256d30b9 (patch) | |
tree | b43511b545ca4e6fe62f48242e0a755bb675a936 /src | |
parent | 80ddebcf2bb12debf43321c8b780c64fe1c5904e (diff) |
Entity: use NodeAdded to update the childrenHandles
Change-Id: I85d78d99c18544944ffae11eaf76e89a54d5e828
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/render/backend/entity.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/render/backend/entity.cpp b/src/render/backend/entity.cpp index dc7726eec..7ad33d184 100644 --- a/src/render/backend/entity.cpp +++ b/src/render/backend/entity.cpp @@ -60,6 +60,9 @@ #include <Qt3DCore/qpropertyupdatedchange.h> #include <Qt3DCore/qtransform.h> #include <Qt3DCore/private/qentity_p.h> +#include <Qt3DCore/qpropertynoderemovedchange.h> +#include <Qt3DCore/qpropertynodeaddedchange.h> +#include <Qt3DCore/qnodecreatedchange.h> #include <QMatrix4x4> #include <QString> @@ -198,6 +201,21 @@ void Entity::sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) break; } + case PropertyValueAdded: { + QPropertyNodeAddedChangePtr change = qSharedPointerCast<QPropertyNodeAddedChange>(e); + if (change->metaObject()->inherits(&QEntity::staticMetaObject)) + appendChildHandle(m_nodeManagers->renderNodesManager()->lookupHandle(change->addedNodeId())); + break; + } + + case PropertyValueRemoved: { + QPropertyNodeRemovedChangePtr change = qSharedPointerCast<QPropertyNodeRemovedChange>(e); + if (change->metaObject()->inherits(&QEntity::staticMetaObject)) + removeChildHandle(m_nodeManagers->renderNodesManager()->lookupHandle(change->removedNodeId())); + break; + } + + default: break; } |