summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2016-04-29 08:44:46 +0200
committerSean Harmer <sean.harmer@kdab.com>2016-05-25 14:44:10 +0000
commit4025b815cc629b18c0517fd83aef9c41256d30b9 (patch)
treeb43511b545ca4e6fe62f48242e0a755bb675a936 /src
parent80ddebcf2bb12debf43321c8b780c64fe1c5904e (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.cpp18
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;
}