summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2016-04-29 12:55:29 +0200
committerSean Harmer <sean.harmer@kdab.com>2016-05-01 12:18:14 +0000
commitc86039d487509eddd405daa6818b9f861948d4ed (patch)
tree38fe462b5d9dd77452604df05c873d36fd6aadae /src
parentb8eac0e9abf4bf47454919424c904a2de089bd2a (diff)
QNodeRemovedChange: contains QNodeIdTypePair
Change-Id: I081f814c4d0a942e50c37cf30a5f731f67df5cb3 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src')
-rw-r--r--src/core/nodes/qnode.cpp2
-rw-r--r--src/core/qnoderemovedpropertychange.cpp18
-rw-r--r--src/core/qnoderemovedpropertychange.h5
-rw-r--r--src/core/qnoderemovedpropertychange_p.h6
-rw-r--r--src/input/frontend/qabstractphysicaldevice.cpp2
-rw-r--r--src/input/frontend/qaction.cpp2
-rw-r--r--src/input/frontend/qaxis.cpp2
-rw-r--r--src/input/frontend/qinputchord.cpp2
-rw-r--r--src/input/frontend/qinputsequence.cpp2
-rw-r--r--src/input/frontend/qlogicaldevice.cpp4
-rw-r--r--src/render/framegraph/qrenderpassfilter.cpp4
-rw-r--r--src/render/framegraph/qrenderstateset.cpp2
-rw-r--r--src/render/framegraph/qtechniquefilter.cpp4
-rw-r--r--src/render/frontend/qrendertarget.cpp2
-rw-r--r--src/render/geometry/qgeometry.cpp2
-rw-r--r--src/render/geometry/qgeometryrenderer.cpp2
-rw-r--r--src/render/materialsystem/qeffect.cpp4
-rw-r--r--src/render/materialsystem/qmaterial.cpp2
-rw-r--r--src/render/materialsystem/qrenderpass.cpp8
-rw-r--r--src/render/materialsystem/qtechnique.cpp4
-rw-r--r--src/render/texture/qabstracttexture.cpp2
21 files changed, 46 insertions, 35 deletions
diff --git a/src/core/nodes/qnode.cpp b/src/core/nodes/qnode.cpp
index 23837fd74..5703e6a46 100644
--- a/src/core/nodes/qnode.cpp
+++ b/src/core/nodes/qnode.cpp
@@ -112,7 +112,7 @@ void QNodePrivate::_q_removeChild(QNode *childNode)
// We notify the backend that we lost a child
if (m_changeArbiter != Q_NULLPTR) {
- const auto change = QNodeRemovedPropertyChangePtr::create(m_id, childNode->id());
+ const auto change = QNodeRemovedPropertyChangePtr::create(m_id, childNode);
change->setPropertyName("children");
notifyObservers(change);
}
diff --git a/src/core/qnoderemovedpropertychange.cpp b/src/core/qnoderemovedpropertychange.cpp
index e4dd46291..532ad63f0 100644
--- a/src/core/qnoderemovedpropertychange.cpp
+++ b/src/core/qnoderemovedpropertychange.cpp
@@ -39,6 +39,7 @@
#include "qnoderemovedpropertychange.h"
#include "qnoderemovedpropertychange_p.h"
+#include <Qt3DCore/private/qnode_p.h>
QT_BEGIN_NAMESPACE
@@ -59,15 +60,15 @@ namespace Qt3DCore {
*/
/*!
- * Constructs a new QNodeRemovedPropertyChange with \a subjectId, \a removedNodeId, and
+ * Constructs a new QNodeRemovedPropertyChange with \a subjectId, \a node, and
* \a priority.
*/
-QNodeRemovedPropertyChange::QNodeRemovedPropertyChange(QNodeId subjectId, QNodeId removedNodeId,
+QNodeRemovedPropertyChange::QNodeRemovedPropertyChange(QNodeId subjectId, QNode *node,
QSceneChange::Priority priority)
: QNodePropertyChangeBase(*new QNodeRemovedPropertyChangePrivate, NodeRemoved, Node, subjectId, priority)
{
Q_D(QNodeRemovedPropertyChange);
- d->m_removedNodeId = removedNodeId;
+ d->m_removedNodeIdTypePair = QNodeIdTypePair(node->id(), QNodePrivate::get(node)->m_typeInfo);
}
/*!
@@ -76,7 +77,16 @@ QNodeRemovedPropertyChange::QNodeRemovedPropertyChange(QNodeId subjectId, QNodeI
QNodeId QNodeRemovedPropertyChange::removedNodeId() const
{
Q_D(const QNodeRemovedPropertyChange);
- return d->m_removedNodeId;
+ return d->m_removedNodeIdTypePair.id;
+}
+
+/*!
+ * \return the metaObject of the node removed to the property.
+ */
+const QMetaObject *QNodeRemovedPropertyChange::metaObject() const
+{
+ Q_D(const QNodeRemovedPropertyChange);
+ return d->m_removedNodeIdTypePair.type;
}
} // namespace Qt3DCore
diff --git a/src/core/qnoderemovedpropertychange.h b/src/core/qnoderemovedpropertychange.h
index 733bf6799..e7a8c21a8 100644
--- a/src/core/qnoderemovedpropertychange.h
+++ b/src/core/qnoderemovedpropertychange.h
@@ -41,7 +41,7 @@
#define QT3DCORE_QNODEREMOVEDPROPERTYCHANGE_H
#include <Qt3DCore/qnodepropertychangebase.h>
-#include <Qt3DCore/qnodeid.h>
+#include <Qt3DCore/qnode.h>
#include <QtCore/qsharedpointer.h>
QT_BEGIN_NAMESPACE
@@ -53,10 +53,11 @@ class QNodeRemovedPropertyChangePrivate;
class QT3DCORESHARED_EXPORT QNodeRemovedPropertyChange : public QNodePropertyChangeBase
{
public:
- QNodeRemovedPropertyChange(QNodeId subjectId, QNodeId removedNodeId,
+ QNodeRemovedPropertyChange(QNodeId subjectId, QNode *node,
Priority priority = Standard);
QNodeId removedNodeId() const;
+ const QMetaObject *metaObject() const;
private:
Q_DECLARE_PRIVATE(QNodeRemovedPropertyChange)
diff --git a/src/core/qnoderemovedpropertychange_p.h b/src/core/qnoderemovedpropertychange_p.h
index d9aec3c2b..f2d1d4f4a 100644
--- a/src/core/qnoderemovedpropertychange_p.h
+++ b/src/core/qnoderemovedpropertychange_p.h
@@ -52,7 +52,7 @@
//
#include <private/qnodepropertychangebase_p.h>
-#include <Qt3DCore/qnodeid.h>
+#include <Qt3DCore/qnode.h>
QT_BEGIN_NAMESPACE
@@ -65,13 +65,13 @@ class QNodeRemovedPropertyChangePrivate : public QNodePropertyChangeBasePrivate
{
public:
QNodeRemovedPropertyChangePrivate()
- : m_removedNodeId()
+ : m_removedNodeIdTypePair()
{
}
Q_DECLARE_PUBLIC(QNodeRemovedPropertyChange)
- QNodeId m_removedNodeId;
+ QNodeIdTypePair m_removedNodeIdTypePair;
};
} // Qt3D
diff --git a/src/input/frontend/qabstractphysicaldevice.cpp b/src/input/frontend/qabstractphysicaldevice.cpp
index 0117df81a..a9a229b82 100644
--- a/src/input/frontend/qabstractphysicaldevice.cpp
+++ b/src/input/frontend/qabstractphysicaldevice.cpp
@@ -174,7 +174,7 @@ void QAbstractPhysicalDevice::removeAxisSetting(QAxisSetting *axisSetting)
Q_D(QAbstractPhysicalDevice);
if (axisSetting && d->m_axisSettings.contains(axisSetting)) {
if (d->m_changeArbiter) {
- const auto change = Qt3DCore::QNodeRemovedPropertyChangePtr::create(id(), axisSetting->id());
+ const auto change = Qt3DCore::QNodeRemovedPropertyChangePtr::create(id(), axisSetting);
change->setPropertyName("axisSettings");
d->notifyObservers(change);
}
diff --git a/src/input/frontend/qaction.cpp b/src/input/frontend/qaction.cpp
index 205c524db..3eadd9d71 100644
--- a/src/input/frontend/qaction.cpp
+++ b/src/input/frontend/qaction.cpp
@@ -137,7 +137,7 @@ void QAction::removeInput(QAbstractActionInput *input)
if (d->m_inputs.contains(input)) {
if (d->m_changeArbiter != Q_NULLPTR) {
- const auto change = Qt3DCore::QNodeRemovedPropertyChangePtr::create(id(), input->id());
+ const auto change = Qt3DCore::QNodeRemovedPropertyChangePtr::create(id(), input);
change->setPropertyName("input");
d->notifyObservers(change);
}
diff --git a/src/input/frontend/qaxis.cpp b/src/input/frontend/qaxis.cpp
index e9006f32e..9c5b80a1d 100644
--- a/src/input/frontend/qaxis.cpp
+++ b/src/input/frontend/qaxis.cpp
@@ -92,7 +92,7 @@ void QAxis::removeInput(QAxisInput *input)
if (d->m_inputs.contains(input)) {
if (d->m_changeArbiter != Q_NULLPTR) {
- const auto change = Qt3DCore::QNodeRemovedPropertyChangePtr::create(id(), input->id());
+ const auto change = Qt3DCore::QNodeRemovedPropertyChangePtr::create(id(), input);
change->setPropertyName("input");
d->notifyObservers(change);
}
diff --git a/src/input/frontend/qinputchord.cpp b/src/input/frontend/qinputchord.cpp
index 4505a70b2..8f72049f8 100644
--- a/src/input/frontend/qinputchord.cpp
+++ b/src/input/frontend/qinputchord.cpp
@@ -169,7 +169,7 @@ void QInputChord::removeChord(QAbstractActionInput *input)
if (d->m_chords.contains(input)) {
if (d->m_changeArbiter != Q_NULLPTR) {
- const auto change = Qt3DCore::QNodeRemovedPropertyChangePtr::create(id(), input->id());
+ const auto change = Qt3DCore::QNodeRemovedPropertyChangePtr::create(id(), input);
change->setPropertyName("chord");
d->notifyObservers(change);
}
diff --git a/src/input/frontend/qinputsequence.cpp b/src/input/frontend/qinputsequence.cpp
index 11d58c310..ffbb4dfd2 100644
--- a/src/input/frontend/qinputsequence.cpp
+++ b/src/input/frontend/qinputsequence.cpp
@@ -214,7 +214,7 @@ void QInputSequence::removeSequence(QAbstractActionInput *input)
Q_D(QInputSequence);
if (d->m_sequences.contains(input)) {
if (d->m_changeArbiter != Q_NULLPTR) {
- const auto change = Qt3DCore::QNodeRemovedPropertyChangePtr::create(id(), input->id());
+ const auto change = Qt3DCore::QNodeRemovedPropertyChangePtr::create(id(), input);
change->setPropertyName("sequence");
d->notifyObservers(change);
}
diff --git a/src/input/frontend/qlogicaldevice.cpp b/src/input/frontend/qlogicaldevice.cpp
index 7c8b5348d..eda2cb8ac 100644
--- a/src/input/frontend/qlogicaldevice.cpp
+++ b/src/input/frontend/qlogicaldevice.cpp
@@ -175,7 +175,7 @@ void QLogicalDevice::removeAction(QAction *action)
if (d->m_actions.contains(action)) {
if (d->m_changeArbiter != Q_NULLPTR) {
- const auto change = Qt3DCore::QNodeRemovedPropertyChangePtr::create(id(), action->id());
+ const auto change = Qt3DCore::QNodeRemovedPropertyChangePtr::create(id(), action);
change->setPropertyName("action");
d->notifyObservers(change);
}
@@ -228,7 +228,7 @@ void QLogicalDevice::removeAxis(QAxis *axis)
Q_D(QLogicalDevice);
if (d->m_axes.contains(axis)) {
if (d->m_changeArbiter != Q_NULLPTR) {
- const auto change = Qt3DCore::QNodeRemovedPropertyChangePtr::create(id(), axis->id());
+ const auto change = Qt3DCore::QNodeRemovedPropertyChangePtr::create(id(), axis);
change->setPropertyName("axis");
d->notifyObservers(change);
}
diff --git a/src/render/framegraph/qrenderpassfilter.cpp b/src/render/framegraph/qrenderpassfilter.cpp
index f49816de5..b1418915c 100644
--- a/src/render/framegraph/qrenderpassfilter.cpp
+++ b/src/render/framegraph/qrenderpassfilter.cpp
@@ -96,7 +96,7 @@ void QRenderPassFilter::removeMatch(QFilterKey *filterKey)
Q_ASSERT(filterKey);
Q_D(QRenderPassFilter);
if (d->m_changeArbiter != Q_NULLPTR) {
- const auto change = QNodeRemovedPropertyChangePtr::create(id(), filterKey->id());
+ const auto change = QNodeRemovedPropertyChangePtr::create(id(), filterKey);
change->setPropertyName("match");
d->notifyObservers(change);
}
@@ -131,7 +131,7 @@ void QRenderPassFilter::removeParameter(QParameter *parameter)
Q_D(QRenderPassFilter);
if (d->m_changeArbiter != Q_NULLPTR) {
- const auto change = QNodeRemovedPropertyChangePtr::create(id(), parameter->id());
+ const auto change = QNodeRemovedPropertyChangePtr::create(id(), parameter);
change->setPropertyName("parameter");
d->notifyObservers(change);
}
diff --git a/src/render/framegraph/qrenderstateset.cpp b/src/render/framegraph/qrenderstateset.cpp
index 9b5b9ebef..92922b1aa 100644
--- a/src/render/framegraph/qrenderstateset.cpp
+++ b/src/render/framegraph/qrenderstateset.cpp
@@ -113,7 +113,7 @@ void QRenderStateSet::removeRenderState(QRenderState *state)
Q_ASSERT(state);
Q_D(QRenderStateSet);
if (d->m_changeArbiter != Q_NULLPTR) {
- const auto change = QNodeRemovedPropertyChangePtr::create(id(), state->id());
+ const auto change = QNodeRemovedPropertyChangePtr::create(id(), state);
change->setPropertyName("renderState");
d->notifyObservers(change);
}
diff --git a/src/render/framegraph/qtechniquefilter.cpp b/src/render/framegraph/qtechniquefilter.cpp
index a42ad485d..ee5ac659c 100644
--- a/src/render/framegraph/qtechniquefilter.cpp
+++ b/src/render/framegraph/qtechniquefilter.cpp
@@ -100,7 +100,7 @@ void QTechniqueFilter::removeMatch(QFilterKey *filterKey)
Q_ASSERT(filterKey);
Q_D(QTechniqueFilter);
if (d->m_changeArbiter != Q_NULLPTR) {
- const auto change = QNodeRemovedPropertyChangePtr::create(id(), filterKey->id());
+ const auto change = QNodeRemovedPropertyChangePtr::create(id(), filterKey);
change->setPropertyName("matchAll");
d->notifyObservers(change);
}
@@ -134,7 +134,7 @@ void QTechniqueFilter::removeParameter(QParameter *parameter)
Q_ASSERT(parameter);
Q_D(QTechniqueFilter);
if (d->m_changeArbiter != Q_NULLPTR) {
- const auto change = QNodeRemovedPropertyChangePtr::create(id(), parameter->id());
+ const auto change = QNodeRemovedPropertyChangePtr::create(id(), parameter);
change->setPropertyName("parameter");
d->notifyObservers(change);
}
diff --git a/src/render/frontend/qrendertarget.cpp b/src/render/frontend/qrendertarget.cpp
index 63e1d48f3..c637ff165 100644
--- a/src/render/frontend/qrendertarget.cpp
+++ b/src/render/frontend/qrendertarget.cpp
@@ -88,7 +88,7 @@ void QRenderTarget::removeOutput(QRenderTargetOutput *output)
Q_D(QRenderTarget);
if (output && d->m_changeArbiter != Q_NULLPTR) {
- const auto change = QNodeRemovedPropertyChangePtr::create(id(), output->id());
+ const auto change = QNodeRemovedPropertyChangePtr::create(id(), output);
change->setPropertyName("output");
d->notifyObservers(change);
}
diff --git a/src/render/geometry/qgeometry.cpp b/src/render/geometry/qgeometry.cpp
index 3de908b50..c00c71939 100644
--- a/src/render/geometry/qgeometry.cpp
+++ b/src/render/geometry/qgeometry.cpp
@@ -127,7 +127,7 @@ void QGeometry::removeAttribute(QAttribute *attribute)
Q_ASSERT(attribute);
Q_D(QGeometry);
if (d->m_changeArbiter != Q_NULLPTR) {
- const auto change = QNodeRemovedPropertyChangePtr::create(id(), attribute->id());
+ const auto change = QNodeRemovedPropertyChangePtr::create(id(), attribute);
change->setPropertyName("attribute");
d->notifyObservers(change);
}
diff --git a/src/render/geometry/qgeometryrenderer.cpp b/src/render/geometry/qgeometryrenderer.cpp
index 03bb710de..423f537c0 100644
--- a/src/render/geometry/qgeometryrenderer.cpp
+++ b/src/render/geometry/qgeometryrenderer.cpp
@@ -354,7 +354,7 @@ void QGeometryRenderer::setGeometry(QGeometry *geometry)
// TODO: Investigate if we can rely upon the automatic property change notifications
// rather than having to manually send a NodeRemoved followed by a NodeAdded change.
if (d->m_geometry && d->m_changeArbiter) {
- const auto change = QNodeRemovedPropertyChangePtr::create(id(), d->m_geometry->id());
+ const auto change = QNodeRemovedPropertyChangePtr::create(id(), d->m_geometry);
change->setPropertyName("geometry");
d->notifyObservers(change);
}
diff --git a/src/render/materialsystem/qeffect.cpp b/src/render/materialsystem/qeffect.cpp
index 0075eacc0..50fdf5a5c 100644
--- a/src/render/materialsystem/qeffect.cpp
+++ b/src/render/materialsystem/qeffect.cpp
@@ -94,7 +94,7 @@ void QEffect::removeParameter(QParameter *parameter)
Q_D(QEffect);
if (parameter && d->m_changeArbiter != Q_NULLPTR) {
- const auto change = QNodeRemovedPropertyChangePtr::create(id(), parameter->id());
+ const auto change = QNodeRemovedPropertyChangePtr::create(id(), parameter);
change->setPropertyName("parameter");
d->notifyObservers(change);
}
@@ -143,7 +143,7 @@ void QEffect::removeTechnique(QTechnique *t)
{
Q_D(QEffect);
if (t && d->m_changeArbiter != Q_NULLPTR) {
- const auto change = QNodeRemovedPropertyChangePtr::create(id(), t->id());
+ const auto change = QNodeRemovedPropertyChangePtr::create(id(), t);
change->setPropertyName("technique");
d->notifyObservers(change);
}
diff --git a/src/render/materialsystem/qmaterial.cpp b/src/render/materialsystem/qmaterial.cpp
index 8adfd6066..5f9bb04d6 100644
--- a/src/render/materialsystem/qmaterial.cpp
+++ b/src/render/materialsystem/qmaterial.cpp
@@ -150,7 +150,7 @@ void QMaterial::removeParameter(QParameter *parameter)
Q_ASSERT(parameter);
Q_D(QMaterial);
if (d->m_changeArbiter != Q_NULLPTR) {
- const auto change = QNodeRemovedPropertyChangePtr::create(id(), parameter->id());
+ const auto change = QNodeRemovedPropertyChangePtr::create(id(), parameter);
change->setPropertyName("parameter");
d->notifyObservers(change);
}
diff --git a/src/render/materialsystem/qrenderpass.cpp b/src/render/materialsystem/qrenderpass.cpp
index 88c059ac8..f55102324 100644
--- a/src/render/materialsystem/qrenderpass.cpp
+++ b/src/render/materialsystem/qrenderpass.cpp
@@ -82,7 +82,7 @@ void QRenderPass::setShaderProgram(QShaderProgram *shaderProgram)
if (d->m_shader != shaderProgram) {
if (d->m_shader != Q_NULLPTR && d->m_changeArbiter != Q_NULLPTR) {
- const auto change = QNodeRemovedPropertyChangePtr::create(id(), d->m_shader->id());
+ const auto change = QNodeRemovedPropertyChangePtr::create(id(), d->m_shader);
change->setPropertyName("shaderProgram");
d->notifyObservers(change);
}
@@ -139,7 +139,7 @@ void QRenderPass::removeFilterKey(QFilterKey *filterKey)
Q_ASSERT(filterKey);
Q_D(QRenderPass);
if (d->m_changeArbiter != Q_NULLPTR) {
- const auto change = QNodeRemovedPropertyChangePtr::create(id(), filterKey->id());
+ const auto change = QNodeRemovedPropertyChangePtr::create(id(), filterKey);
change->setPropertyName("filterKeys");
d->notifyObservers(change);
}
@@ -186,7 +186,7 @@ void QRenderPass::removeRenderState(QRenderState *state)
Q_ASSERT(state);
Q_D(QRenderPass);
if (d->m_changeArbiter != Q_NULLPTR) {
- const auto change = QNodeRemovedPropertyChangePtr::create(id(), state->id());
+ const auto change = QNodeRemovedPropertyChangePtr::create(id(), state);
change->setPropertyName("renderState");
d->notifyObservers(change);
}
@@ -230,7 +230,7 @@ void QRenderPass::removeParameter(QParameter *parameter)
Q_ASSERT(parameter);
Q_D(QRenderPass);
if (d->m_changeArbiter != Q_NULLPTR) {
- const auto change = QNodeRemovedPropertyChangePtr::create(id(), parameter->id());
+ const auto change = QNodeRemovedPropertyChangePtr::create(id(), parameter);
change->setPropertyName("parameter");
d->notifyObservers(change);
}
diff --git a/src/render/materialsystem/qtechnique.cpp b/src/render/materialsystem/qtechnique.cpp
index eaa87551e..185a78746 100644
--- a/src/render/materialsystem/qtechnique.cpp
+++ b/src/render/materialsystem/qtechnique.cpp
@@ -112,7 +112,7 @@ void QTechnique::removeFilterKey(QFilterKey *filterKey)
Q_ASSERT(filterKey);
Q_D(QTechnique);
if (d->m_changeArbiter != Q_NULLPTR) {
- const auto change = QNodeRemovedPropertyChangePtr::create(id(), filterKey->id());
+ const auto change = QNodeRemovedPropertyChangePtr::create(id(), filterKey);
change->setPropertyName("filterKeys");
d->notifyObservers(change);
}
@@ -152,7 +152,7 @@ void QTechnique::removeParameter(QParameter *parameter)
Q_ASSERT(parameter);
Q_D(QTechnique);
if (d->m_changeArbiter != Q_NULLPTR) {
- const auto change = QNodeRemovedPropertyChangePtr::create(id(), parameter->id());
+ const auto change = QNodeRemovedPropertyChangePtr::create(id(), parameter);
change->setPropertyName("parameter");
d->notifyObservers(change);
}
diff --git a/src/render/texture/qabstracttexture.cpp b/src/render/texture/qabstracttexture.cpp
index 927a3cfaf..dedca8715 100644
--- a/src/render/texture/qabstracttexture.cpp
+++ b/src/render/texture/qabstracttexture.cpp
@@ -294,7 +294,7 @@ void QAbstractTexture::removeTextureImage(QAbstractTextureImage *textureImage)
Q_ASSERT(textureImage);
Q_D(QAbstractTexture);
if (d->m_changeArbiter != Q_NULLPTR) {
- const auto change = QNodeRemovedPropertyChangePtr::create(id(), textureImage->id());
+ const auto change = QNodeRemovedPropertyChangePtr::create(id(), textureImage);
change->setPropertyName("textureImage");
d->notifyObservers(change);
}