summaryrefslogtreecommitdiffstats
path: root/src/core/aspects
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2014-09-29 17:19:36 +0200
committerSean Harmer <sean.harmer@kdab.com>2014-10-03 21:18:41 +0200
commit7b26f6a1746419161a8f875e341b3e31220f4141 (patch)
treef784e568015e1f7f199abb388b97fefdb158c84e /src/core/aspects
parentc16689bb1ccf31416df7b8c69fe032898cf87dec (diff)
QNode refactoring
Move almost everything to private classes. Assimp loading restored. All examples working. QNode hierachy is now handled through QObject::setParent, addChild, removeChild are part of the private api. Note: commented QChangeArbiter unit tests as they can no longer work with this patch and will restore them when QChangeArbiter will have been made private. Task-number: QTBUG-41470 Task-number: QTBUG-41523 Change-Id: I4430974b3aa7f3744c38714b451b122e0cb4d0c9 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/core/aspects')
-rw-r--r--src/core/aspects/qaspectengine.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/core/aspects/qaspectengine.cpp b/src/core/aspects/qaspectengine.cpp
index 5b88037ee..f22492e95 100644
--- a/src/core/aspects/qaspectengine.cpp
+++ b/src/core/aspects/qaspectengine.cpp
@@ -52,6 +52,7 @@
#include <private/qpostman_p.h>
#include "qscene.h"
#include <private/qaspectengine_p.h>
+#include <private/qnode_p.h>
#include "qentity.h"
#include "qcomponent.h"
@@ -92,15 +93,18 @@ QAspectEngine::QAspectEngine(QAspectEnginePrivate &dd, QObject *parent)
void QAspectEngine::initNodeTree(QNode *node) const
{
Q_D(const QAspectEngine);
- node->setScene(d->m_scene);
+ node->d_func()->setScene(d->m_scene);
d->m_scene->addObservable(node);
QEntity *entity = qobject_cast<QEntity *>(node);
if (entity != Q_NULLPTR)
Q_FOREACH (QComponent *comp, entity->components())
d->m_scene->addEntityForComponent(comp->uuid(), entity->uuid());
- Q_FOREACH (QNode *c, node->children())
- initNodeTree(c);
+ Q_FOREACH (QObject *c, node->children()) {
+ QNode *childNode = qobject_cast<QNode *>(c);
+ if (childNode != Q_NULLPTR)
+ initNodeTree(childNode);
+ }
}
void QAspectEngine::initialize()