diff options
author | Sean Harmer <sean.harmer@kdab.com> | 2016-04-07 20:56:52 +0100 |
---|---|---|
committer | Sean Harmer <sean.harmer@kdab.com> | 2016-04-11 08:00:12 +0000 |
commit | 19a8c6b46cb538ee4e628cbe50f6fa549094d7eb (patch) | |
tree | 82d1c93dabd7553d6088dc85c157bb4bf5067d3f /src | |
parent | fe154ade6d0329e4972f1d6af95720cf2dd7c01a (diff) |
Ensure that QNodeCreatedChange objects have subjectId set correctly
This ensures that subclasses of QNodeCreatedChangeBase always pass in
the QNode pointer that allows to correctly set the subjectId to be the
id() of the QNode.
With this change the materials-cpp example is now able to run using the
new node creation mechanism.
Change-Id: I0a5ce4f3e93b485adfdb7534c15493946cfa00c6
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/core/qnodecreatedchange.cpp | 5 | ||||
-rw-r--r-- | src/core/qnodecreatedchange.h | 2 | ||||
-rw-r--r-- | src/core/qscenechange.cpp | 17 | ||||
-rw-r--r-- | src/input/frontend/qphysicaldevicecreatedchange.cpp | 3 | ||||
-rw-r--r-- | src/render/renderstates/qrenderstatecreatedchange.cpp | 3 |
5 files changed, 16 insertions, 14 deletions
diff --git a/src/core/qnodecreatedchange.cpp b/src/core/qnodecreatedchange.cpp index 6e3316772..377e80f24 100644 --- a/src/core/qnodecreatedchange.cpp +++ b/src/core/qnodecreatedchange.cpp @@ -56,10 +56,9 @@ QNodeCreatedChangeBase::QNodeCreatedChangeBase(const QNode *node, Priority prior { } -QNodeCreatedChangeBase::QNodeCreatedChangeBase(QNodeCreatedChangeBasePrivate &dd) - : QSceneChange(dd) +QNodeCreatedChangeBase::QNodeCreatedChangeBase(QNodeCreatedChangeBasePrivate &dd, const QNode *node, Priority priority) + : QSceneChange(dd, NodeCreated, QSceneChange::Node, node->id(), priority) { - } QNodeCreatedChangeBase::~QNodeCreatedChangeBase() diff --git a/src/core/qnodecreatedchange.h b/src/core/qnodecreatedchange.h index 838399620..dc3fb48c6 100644 --- a/src/core/qnodecreatedchange.h +++ b/src/core/qnodecreatedchange.h @@ -59,7 +59,7 @@ public: bool isNodeEnabled() const Q_DECL_NOEXCEPT; protected: - QNodeCreatedChangeBase(QNodeCreatedChangeBasePrivate &dd); + QNodeCreatedChangeBase(QNodeCreatedChangeBasePrivate &dd, const QNode *node, Priority priority); private: Q_DECLARE_PRIVATE(QNodeCreatedChangeBase) diff --git a/src/core/qscenechange.cpp b/src/core/qscenechange.cpp index 108a3409a..dd84f6fcc 100644 --- a/src/core/qscenechange.cpp +++ b/src/core/qscenechange.cpp @@ -62,7 +62,12 @@ namespace Qt3DCore { */ QSceneChangePrivate::QSceneChangePrivate() - : q_ptr(Q_NULLPTR) + : q_ptr(nullptr) + , m_subjectId() + , m_subjectType(QSceneChange::Node) + , m_type(AllChanges) + , m_priority(QSceneChange::Standard) + , m_timestamp(QDateTime::currentMSecsSinceEpoch()) { } @@ -82,11 +87,6 @@ QSceneChange::QSceneChange(ChangeFlag type, ObservableType observableType, QNode d->m_subjectType = observableType; } -QSceneChange::~QSceneChange() -{ - delete d_ptr; -} - /*! \internal */ QSceneChange::QSceneChange(QSceneChangePrivate &dd) : d_ptr(&dd) @@ -107,6 +107,11 @@ QSceneChange::QSceneChange(QSceneChangePrivate &dd, ChangeFlag type, ObservableT d->m_subjectType = observableType; } +QSceneChange::~QSceneChange() +{ + delete d_ptr; +} + ChangeFlag QSceneChange::type() const { Q_D(const QSceneChange); diff --git a/src/input/frontend/qphysicaldevicecreatedchange.cpp b/src/input/frontend/qphysicaldevicecreatedchange.cpp index ff976c1b8..39e663fff 100644 --- a/src/input/frontend/qphysicaldevicecreatedchange.cpp +++ b/src/input/frontend/qphysicaldevicecreatedchange.cpp @@ -52,9 +52,8 @@ QPhysicalDeviceCreatedChangeBasePrivate::QPhysicalDeviceCreatedChangeBasePrivate } QPhysicalDeviceCreatedChangeBase::QPhysicalDeviceCreatedChangeBase(const QAbstractPhysicalDevice *device, Priority priority) - : Qt3DCore::QNodeCreatedChangeBase(*new QPhysicalDeviceCreatedChangeBasePrivate(device)) + : Qt3DCore::QNodeCreatedChangeBase(*new QPhysicalDeviceCreatedChangeBasePrivate(device), device, priority) { - d_func()->m_priority = priority; } Qt3DCore::QNodeIdVector QPhysicalDeviceCreatedChangeBase::axisSettingIds() const diff --git a/src/render/renderstates/qrenderstatecreatedchange.cpp b/src/render/renderstates/qrenderstatecreatedchange.cpp index 85df30082..685da3a47 100644 --- a/src/render/renderstates/qrenderstatecreatedchange.cpp +++ b/src/render/renderstates/qrenderstatecreatedchange.cpp @@ -55,9 +55,8 @@ public: }; QRenderStateCreatedChangeBase::QRenderStateCreatedChangeBase(const QRenderState *renderState, Priority priority) - : QNodeCreatedChangeBase(*new QRenderStateCreatedChangeBasePrivate(renderState)) + : QNodeCreatedChangeBase(*new QRenderStateCreatedChangeBasePrivate(renderState), renderState, priority) { - d_func()->m_priority = priority; } QRenderStatePrivate::Type QRenderStateCreatedChangeBase::type() const |