diff options
author | Sean Harmer <sean.harmer@kdab.com> | 2016-04-20 11:34:48 +0100 |
---|---|---|
committer | Sean Harmer <sean.harmer@kdab.com> | 2016-04-20 14:11:01 +0000 |
commit | a124ac52262affa29cc051606b66ee8adaf47506 (patch) | |
tree | 41041baf833b894f4cd380ea1810653bcaeb6454 /src/render/backend/entity.cpp | |
parent | dc4af32196c2d6d4bbe7d160d385f09103dca395 (diff) |
Use new component added/removed changes
Change-Id: I31d1d60fad2ed85bcb7b9cac956b36b89e6bfb1e
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Diffstat (limited to 'src/render/backend/entity.cpp')
-rw-r--r-- | src/render/backend/entity.cpp | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/src/render/backend/entity.cpp b/src/render/backend/entity.cpp index 302186483..8728159c3 100644 --- a/src/render/backend/entity.cpp +++ b/src/render/backend/entity.cpp @@ -54,6 +54,8 @@ #include <Qt3DRender/private/geometryrenderermanager_p.h> #include <Qt3DRender/qcameralens.h> +#include <Qt3DCore/qcomponentaddedchange.h> +#include <Qt3DCore/qcomponentremovedchange.h> #include <Qt3DCore/qentity.h> #include <Qt3DCore/qscenepropertychange.h> #include <Qt3DCore/qtransform.h> @@ -212,21 +214,20 @@ void Entity::initializeFromPeer(const QNodeCreatedChangeBasePtr &change) void Entity::sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) { - QScenePropertyChangePtr propertyChange = qSharedPointerCast<QScenePropertyChange>(e); switch (e->type()) { case ComponentAdded: { - QNodePtr nodePtr = propertyChange->value().value<QNodePtr>(); - QComponent *component = qobject_cast<QComponent *>(nodePtr.data()); - qCDebug(Render::RenderNodes) << Q_FUNC_INFO << "Component Added" << m_objectName << component->objectName(); - addComponent(component); + QComponentAddedChangePtr change = qSharedPointerCast<QComponentAddedChange>(e); + const auto componentIdAndType = QNodeIdTypePair(change->componentId(), change->componentMetaObject()); + addComponent(componentIdAndType); + qCDebug(Render::RenderNodes) << Q_FUNC_INFO << "Component Added. Id =" << change->componentId(); break; } case ComponentRemoved: { - QNodeId nodeId = propertyChange->value().value<QNodeId>(); - qCDebug(Render::RenderNodes) << Q_FUNC_INFO << "Component Removed"; - removeComponent(nodeId); + QComponentRemovedChangePtr change = qSharedPointerCast<QComponentRemovedChange>(e); + removeComponent(change->componentId()); + qCDebug(Render::RenderNodes) << Q_FUNC_INFO << "Component Removed. Id =" << change->componentId(); break; } |