summaryrefslogtreecommitdiffstats
path: root/src/core/aspects
diff options
context:
space:
mode:
authorSean Harmer <sean.harmer@kdab.com>2016-02-26 12:09:02 +0000
committerSean Harmer <sean.harmer@kdab.com>2016-03-17 19:18:55 +0000
commitf3f4280aeff650fec27c92adc9e9b21b7b8bbe75 (patch)
treea09d0d3773706f086fe97f527e22ac8c205a7a76 /src/core/aspects
parent123d0dbe1ba6538e18debe193a4ccddc45bfca69 (diff)
Add rootEntityId() function
This will allow us to remove onRootEntityChanged() virtual and instead do the work in the onEngineStartup() virtual. Task-number: QTBUG-51421 Change-Id: Ie492cb29aed2439a38491b373ece94ee32ee8240 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/core/aspects')
-rw-r--r--src/core/aspects/qabstractaspect.cpp9
-rw-r--r--src/core/aspects/qabstractaspect.h3
-rw-r--r--src/core/aspects/qabstractaspect_p.h1
3 files changed, 13 insertions, 0 deletions
diff --git a/src/core/aspects/qabstractaspect.cpp b/src/core/aspects/qabstractaspect.cpp
index a35d860c6..09d418509 100644
--- a/src/core/aspects/qabstractaspect.cpp
+++ b/src/core/aspects/qabstractaspect.cpp
@@ -55,6 +55,7 @@ namespace Qt3DCore {
QAbstractAspectPrivate::QAbstractAspectPrivate()
: QObjectPrivate()
, m_root(Q_NULLPTR)
+ , m_rootId()
, m_aspectManager(Q_NULLPTR)
, m_jobManager(Q_NULLPTR)
, m_arbiter(Q_NULLPTR)
@@ -96,6 +97,13 @@ QAbstractAspect::QAbstractAspect(QAbstractAspectPrivate &dd, QObject *parent)
: QObject(dd, parent)
{
}
+
+QNodeId QAbstractAspect::rootEntityId() const Q_DECL_NOEXCEPT
+{
+ Q_D(const QAbstractAspect);
+ return d->m_rootId;
+}
+
/*!
Registers backend.
*/
@@ -198,6 +206,7 @@ void QAbstractAspectPrivate::registerAspect(QEntity *rootObject)
return;
m_root = rootObject;
+ m_rootId = rootObject->id();
QNodeVisitor visitor;
visitor.traverse(rootObject, this, &QAbstractAspectPrivate::createBackendNode);
diff --git a/src/core/aspects/qabstractaspect.h b/src/core/aspects/qabstractaspect.h
index e4c09dca7..e4f8b8453 100644
--- a/src/core/aspects/qabstractaspect.h
+++ b/src/core/aspects/qabstractaspect.h
@@ -43,6 +43,7 @@
#include <QObject>
#include <QSharedPointer>
#include <Qt3DCore/qt3dcore_global.h>
+#include <Qt3DCore/qnodeid.h>
QT_BEGIN_NAMESPACE
@@ -69,6 +70,8 @@ public:
protected:
QAbstractAspect(QAbstractAspectPrivate &dd, QObject *parent = 0);
+ QNodeId rootEntityId() const Q_DECL_NOEXCEPT;
+
template<class Frontend>
void registerBackendType(const QBackendNodeMapperPtr &functor);
void registerBackendType(const QMetaObject &, const QBackendNodeMapperPtr &functor);
diff --git a/src/core/aspects/qabstractaspect_p.h b/src/core/aspects/qabstractaspect_p.h
index 5b3d376b7..bf7b035c3 100644
--- a/src/core/aspects/qabstractaspect_p.h
+++ b/src/core/aspects/qabstractaspect_p.h
@@ -96,6 +96,7 @@ public:
Q_DECLARE_PUBLIC(QAbstractAspect)
QEntity *m_root;
+ QNodeId m_rootId;
QAspectManager *m_aspectManager;
QAbstractAspectJobManager *m_jobManager;
QChangeArbiter *m_arbiter;