summaryrefslogtreecommitdiffstats
path: root/src/logic
diff options
context:
space:
mode:
authorSean Harmer <sean.harmer@kdab.com>2016-03-24 15:23:31 +0000
committerSean Harmer <sean.harmer@kdab.com>2016-03-30 15:16:17 +0000
commitd32dfac3be459d7df4f9cdbe1ad0a1fb4d531966 (patch)
treeb9630f3a91b313325bb021b942a424ca9a6caede /src/logic
parent2dfdbc7f8d519bbd47f9ced62ded9cfe4c683653 (diff)
HandlerFunctor in Logic aspect handles creation
Change-Id: Icd548c64c8355fb93341d5e8f263440db0f00ec7 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Diffstat (limited to 'src/logic')
-rw-r--r--src/logic/handler.cpp8
-rw-r--r--src/logic/handler_p.h1
2 files changed, 9 insertions, 0 deletions
diff --git a/src/logic/handler.cpp b/src/logic/handler.cpp
index ed693e7d4..3d40f0973 100644
--- a/src/logic/handler.cpp
+++ b/src/logic/handler.cpp
@@ -76,6 +76,14 @@ Qt3DCore::QBackendNode *HandlerFunctor::create(Qt3DCore::QNode *frontend) const
return handler;
}
+Qt3DCore::QBackendNode *HandlerFunctor::create(const Qt3DCore::QNodeCreatedChangeBasePtr &change) const
+{
+ Handler *handler = m_manager->logicHandlerManager()->getOrCreateResource(change->subjectId());
+ handler->setManager(m_manager);
+ m_manager->appendHandler(handler);
+ return handler;
+}
+
Qt3DCore::QBackendNode *HandlerFunctor::get(Qt3DCore::QNodeId id) const
{
return m_manager->logicHandlerManager()->lookupResource(id);
diff --git a/src/logic/handler_p.h b/src/logic/handler_p.h
index 0e90949e5..3ba7ad29b 100644
--- a/src/logic/handler_p.h
+++ b/src/logic/handler_p.h
@@ -86,6 +86,7 @@ public:
explicit HandlerFunctor(Manager *handler);
Qt3DCore::QBackendNode *create(Qt3DCore::QNode *frontend) const Q_DECL_OVERRIDE;
+ Qt3DCore::QBackendNode *create(const Qt3DCore::QNodeCreatedChangeBasePtr &change) const Q_DECL_OVERRIDE;
Qt3DCore::QBackendNode *get(Qt3DCore::QNodeId id) const Q_DECL_OVERRIDE;
void destroy(Qt3DCore::QNodeId id) const Q_DECL_OVERRIDE;