diff options
author | Paul Lemire <paul.lemire@kdab.com> | 2016-04-29 12:55:29 +0200 |
---|---|---|
committer | Sean Harmer <sean.harmer@kdab.com> | 2016-05-01 12:18:14 +0000 |
commit | c86039d487509eddd405daa6818b9f861948d4ed (patch) | |
tree | 38fe462b5d9dd77452604df05c873d36fd6aadae /src | |
parent | b8eac0e9abf4bf47454919424c904a2de089bd2a (diff) |
QNodeRemovedChange: contains QNodeIdTypePair
Change-Id: I081f814c4d0a942e50c37cf30a5f731f67df5cb3
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src')
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); } |