summaryrefslogtreecommitdiffstats
path: root/src/core/nodes/qnode.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/nodes/qnode.cpp')
-rw-r--r--src/core/nodes/qnode.cpp16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/core/nodes/qnode.cpp b/src/core/nodes/qnode.cpp
index e4bb5d4a3..8e7261be0 100644
--- a/src/core/nodes/qnode.cpp
+++ b/src/core/nodes/qnode.cpp
@@ -392,20 +392,22 @@ void QNodePrivate::setSceneHelper(QNode *root)
Recursively unsets and remove nodes in the subtree of base node \a root from
the scene. Also takes care of removing Components and Entities connections.
*/
-void QNodePrivate::unsetSceneHelper(QNode *root)
+void QNodePrivate::unsetSceneHelper(QNode *node)
{
+ QNodePrivate *nodePrivate = QNodePrivate::get(node);
+
// We also need to handle QEntity <-> QComponent relationships removal
- if (QComponent *c = qobject_cast<QComponent *>(root)) {
+ if (QComponent *c = qobject_cast<QComponent *>(node)) {
const QVector<QEntity *> entities = c->entities();
for (QEntity *entity : entities) {
- if (m_scene)
- m_scene->removeEntityForComponent(c->id(), entity->id());
+ if (nodePrivate->m_scene)
+ nodePrivate->m_scene->removeEntityForComponent(c->id(), entity->id());
}
}
- if (m_scene != nullptr)
- m_scene->removeObservable(root);
- root->d_func()->setScene(nullptr);
+ if (nodePrivate->m_scene != nullptr)
+ nodePrivate->m_scene->removeObservable(node);
+ nodePrivate->setScene(nullptr);
}
/*!