diff options
author | Sean Harmer <sean.harmer@kdab.com> | 2016-02-26 12:09:02 +0000 |
---|---|---|
committer | Sean Harmer <sean.harmer@kdab.com> | 2016-03-17 19:18:55 +0000 |
commit | f3f4280aeff650fec27c92adc9e9b21b7b8bbe75 (patch) | |
tree | a09d0d3773706f086fe97f527e22ac8c205a7a76 /src/core/aspects | |
parent | 123d0dbe1ba6538e18debe193a4ccddc45bfca69 (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.cpp | 9 | ||||
-rw-r--r-- | src/core/aspects/qabstractaspect.h | 3 | ||||
-rw-r--r-- | src/core/aspects/qabstractaspect_p.h | 1 |
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; |