summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSean Harmer <sean.harmer@kdab.com>2016-04-07 20:56:52 +0100
committerSean Harmer <sean.harmer@kdab.com>2016-04-11 08:00:12 +0000
commit19a8c6b46cb538ee4e628cbe50f6fa549094d7eb (patch)
tree82d1c93dabd7553d6088dc85c157bb4bf5067d3f /src
parentfe154ade6d0329e4972f1d6af95720cf2dd7c01a (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.cpp5
-rw-r--r--src/core/qnodecreatedchange.h2
-rw-r--r--src/core/qscenechange.cpp17
-rw-r--r--src/input/frontend/qphysicaldevicecreatedchange.cpp3
-rw-r--r--src/render/renderstates/qrenderstatecreatedchange.cpp3
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