diff options
29 files changed, 114 insertions, 55 deletions
diff --git a/src/core/nodes/qnode.cpp b/src/core/nodes/qnode.cpp index 397a88c99..23837fd74 100644 --- a/src/core/nodes/qnode.cpp +++ b/src/core/nodes/qnode.cpp @@ -92,7 +92,7 @@ void QNodePrivate::_q_addChild(QNode *childNode) // We notify the backend that we have a new child if (m_changeArbiter != Q_NULLPTR) { - const auto change = QNodeAddedPropertyChangePtr::create(m_id, childNode->id()); + const auto change = QNodeAddedPropertyChangePtr::create(m_id, childNode); change->setPropertyName("children"); notifyObservers(change); } diff --git a/src/core/qnodeaddedpropertychange.cpp b/src/core/qnodeaddedpropertychange.cpp index ad51dcb5b..55f4a2dc2 100644 --- a/src/core/qnodeaddedpropertychange.cpp +++ b/src/core/qnodeaddedpropertychange.cpp @@ -39,6 +39,7 @@ #include "qnodeaddedpropertychange.h" #include "qnodeaddedpropertychange_p.h" +#include <Qt3DCore/private/qnode_p.h> QT_BEGIN_NAMESPACE @@ -62,12 +63,12 @@ namespace Qt3DCore { * Constructs a new QNodeAddedPropertyChange with \a subjectId, \a addedNodeId, and * \a priority. */ -QNodeAddedPropertyChange::QNodeAddedPropertyChange(QNodeId subjectId, QNodeId addedNodeId, +QNodeAddedPropertyChange::QNodeAddedPropertyChange(QNodeId subjectId, QNode *node, QSceneChange::Priority priority) : QNodePropertyChangeBase(*new QNodeAddedPropertyChangePrivate, NodeAdded, Node, subjectId, priority) { Q_D(QNodeAddedPropertyChange); - d->m_addedNodeId = addedNodeId; + d->m_addedNodeIdTypePair = QNodeIdTypePair(node->id(), QNodePrivate::get(node)->m_typeInfo); } /*! @@ -76,7 +77,16 @@ QNodeAddedPropertyChange::QNodeAddedPropertyChange(QNodeId subjectId, QNodeId ad QNodeId QNodeAddedPropertyChange::addedNodeId() const { Q_D(const QNodeAddedPropertyChange); - return d->m_addedNodeId; + return d->m_addedNodeIdTypePair.id; +} + +/*! + * \return the meta object of the node added to the property. + */ +const QMetaObject *QNodeAddedPropertyChange::metaObject() const +{ + Q_D(const QNodeAddedPropertyChange); + return d->m_addedNodeIdTypePair.type; } } // namespace Qt3DCore diff --git a/src/core/qnodeaddedpropertychange.h b/src/core/qnodeaddedpropertychange.h index c6576df64..6d62aa066 100644 --- a/src/core/qnodeaddedpropertychange.h +++ b/src/core/qnodeaddedpropertychange.h @@ -41,7 +41,7 @@ #define QT3DCORE_QNODEADDEDPROPERTYCHANGE_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 QNodeAddedPropertyChangePrivate; class QT3DCORESHARED_EXPORT QNodeAddedPropertyChange : public QNodePropertyChangeBase { public: - QNodeAddedPropertyChange(QNodeId subjectId, QNodeId addedNodeId, + QNodeAddedPropertyChange(QNodeId subjectId, QNode *node, Priority priority = Standard); QNodeId addedNodeId() const; + const QMetaObject *metaObject() const; private: Q_DECLARE_PRIVATE(QNodeAddedPropertyChange) diff --git a/src/core/qnodeaddedpropertychange_p.h b/src/core/qnodeaddedpropertychange_p.h index 16623cac3..72071b87e 100644 --- a/src/core/qnodeaddedpropertychange_p.h +++ b/src/core/qnodeaddedpropertychange_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 QNodeAddedPropertyChangePrivate : public QNodePropertyChangeBasePrivate { public: QNodeAddedPropertyChangePrivate() - : m_addedNodeId() + : m_addedNodeIdTypePair() { } Q_DECLARE_PUBLIC(QNodeAddedPropertyChange) - QNodeId m_addedNodeId; + QNodeIdTypePair m_addedNodeIdTypePair; }; } // Qt3D diff --git a/src/input/frontend/qabstractphysicaldevice.cpp b/src/input/frontend/qabstractphysicaldevice.cpp index 1d876133f..0117df81a 100644 --- a/src/input/frontend/qabstractphysicaldevice.cpp +++ b/src/input/frontend/qabstractphysicaldevice.cpp @@ -157,7 +157,7 @@ void QAbstractPhysicalDevice::addAxisSetting(QAxisSetting *axisSetting) Q_D(QAbstractPhysicalDevice); if (axisSetting && !d->m_axisSettings.contains(axisSetting)) { if (d->m_changeArbiter) { - const auto change = Qt3DCore::QNodeAddedPropertyChangePtr::create(id(), axisSetting->id()); + const auto change = Qt3DCore::QNodeAddedPropertyChangePtr::create(id(), axisSetting); change->setPropertyName("axisSettings"); d->notifyObservers(change); } diff --git a/src/input/frontend/qaction.cpp b/src/input/frontend/qaction.cpp index 987ce6ca1..205c524db 100644 --- a/src/input/frontend/qaction.cpp +++ b/src/input/frontend/qaction.cpp @@ -121,7 +121,7 @@ void QAction::addInput(QAbstractActionInput *input) input->setParent(this); if (d->m_changeArbiter != Q_NULLPTR) { - const auto change = Qt3DCore::QNodeAddedPropertyChangePtr::create(id(), input->id()); + const auto change = Qt3DCore::QNodeAddedPropertyChangePtr::create(id(), input); change->setPropertyName("input"); d->notifyObservers(change); } diff --git a/src/input/frontend/qaxis.cpp b/src/input/frontend/qaxis.cpp index d5ffb9cb5..e9006f32e 100644 --- a/src/input/frontend/qaxis.cpp +++ b/src/input/frontend/qaxis.cpp @@ -79,7 +79,7 @@ void QAxis::addInput(QAxisInput *input) input->setParent(this); if (d->m_changeArbiter != Q_NULLPTR) { - const auto change = Qt3DCore::QNodeAddedPropertyChangePtr::create(id(), input->id()); + const auto change = Qt3DCore::QNodeAddedPropertyChangePtr::create(id(), input); change->setPropertyName("input"); d->notifyObservers(change); } diff --git a/src/input/frontend/qinputchord.cpp b/src/input/frontend/qinputchord.cpp index a423abdc0..4505a70b2 100644 --- a/src/input/frontend/qinputchord.cpp +++ b/src/input/frontend/qinputchord.cpp @@ -151,7 +151,7 @@ void QInputChord::addChord(QAbstractActionInput *input) input->setParent(this); if (d->m_changeArbiter != Q_NULLPTR) { - const auto change = Qt3DCore::QNodeAddedPropertyChangePtr::create(id(), input->id()); + const auto change = Qt3DCore::QNodeAddedPropertyChangePtr::create(id(), input); change->setPropertyName("chord"); d->notifyObservers(change); } diff --git a/src/input/frontend/qinputsequence.cpp b/src/input/frontend/qinputsequence.cpp index c3076466f..11d58c310 100644 --- a/src/input/frontend/qinputsequence.cpp +++ b/src/input/frontend/qinputsequence.cpp @@ -197,7 +197,7 @@ void QInputSequence::addSequence(QAbstractActionInput *input) input->setParent(this); if (d->m_changeArbiter != Q_NULLPTR) { - const auto change = Qt3DCore::QNodeAddedPropertyChangePtr::create(id(), input->id()); + const auto change = Qt3DCore::QNodeAddedPropertyChangePtr::create(id(), input); change->setPropertyName("sequence"); d->notifyObservers(change); } diff --git a/src/input/frontend/qlogicaldevice.cpp b/src/input/frontend/qlogicaldevice.cpp index 9737b4afa..7c8b5348d 100644 --- a/src/input/frontend/qlogicaldevice.cpp +++ b/src/input/frontend/qlogicaldevice.cpp @@ -159,7 +159,7 @@ void QLogicalDevice::addAction(QAction *action) action->setParent(this); if (d->m_changeArbiter != Q_NULLPTR) { - const auto change = Qt3DCore::QNodeAddedPropertyChangePtr::create(id(), action->id()); + const auto change = Qt3DCore::QNodeAddedPropertyChangePtr::create(id(), action); change->setPropertyName("action"); d->notifyObservers(change); } @@ -213,7 +213,7 @@ void QLogicalDevice::addAxis(QAxis *axis) axis->setParent(this); if (d->m_changeArbiter != Q_NULLPTR) { - const auto change = Qt3DCore::QNodeAddedPropertyChangePtr::create(id(), axis->id()); + const auto change = Qt3DCore::QNodeAddedPropertyChangePtr::create(id(), axis); change->setPropertyName("axis"); d->notifyObservers(change); } diff --git a/src/render/framegraph/qrenderpassfilter.cpp b/src/render/framegraph/qrenderpassfilter.cpp index 472dd2402..f49816de5 100644 --- a/src/render/framegraph/qrenderpassfilter.cpp +++ b/src/render/framegraph/qrenderpassfilter.cpp @@ -84,7 +84,7 @@ void QRenderPassFilter::addMatch(QFilterKey *filterKey) filterKey->setParent(this); if (d->m_changeArbiter != Q_NULLPTR) { - const auto change = QNodeAddedPropertyChangePtr::create(id(), filterKey->id()); + const auto change = QNodeAddedPropertyChangePtr::create(id(), filterKey); change->setPropertyName("match"); d->notifyObservers(change); } @@ -118,7 +118,7 @@ void QRenderPassFilter::addParameter(QParameter *parameter) parameter->setParent(this); if (d->m_changeArbiter != Q_NULLPTR) { - const auto change = QNodeAddedPropertyChangePtr::create(id(), parameter->id()); + const auto change = QNodeAddedPropertyChangePtr::create(id(), parameter); change->setPropertyName("parameter"); d->notifyObservers(change); } diff --git a/src/render/framegraph/qrenderstateset.cpp b/src/render/framegraph/qrenderstateset.cpp index 55c301f3c..9b5b9ebef 100644 --- a/src/render/framegraph/qrenderstateset.cpp +++ b/src/render/framegraph/qrenderstateset.cpp @@ -98,7 +98,7 @@ void QRenderStateSet::addRenderState(QRenderState *state) state->setParent(this); if (d->m_changeArbiter != Q_NULLPTR) { - const auto change = QNodeAddedPropertyChangePtr::create(id(), state->id()); + const auto change = QNodeAddedPropertyChangePtr::create(id(), state); change->setPropertyName("renderState"); d->notifyObservers(change); } diff --git a/src/render/framegraph/qtechniquefilter.cpp b/src/render/framegraph/qtechniquefilter.cpp index 7af782537..a42ad485d 100644 --- a/src/render/framegraph/qtechniquefilter.cpp +++ b/src/render/framegraph/qtechniquefilter.cpp @@ -88,7 +88,7 @@ void QTechniqueFilter::addMatch(QFilterKey *filterKey) filterKey->setParent(this); if (d->m_changeArbiter != Q_NULLPTR) { - const auto change = QNodeAddedPropertyChangePtr::create(id(), filterKey->id()); + const auto change = QNodeAddedPropertyChangePtr::create(id(), filterKey); change->setPropertyName("matchAll"); d->notifyObservers(change); } @@ -122,7 +122,7 @@ void QTechniqueFilter::addParameter(QParameter *parameter) parameter->setParent(this); if (d->m_changeArbiter != Q_NULLPTR) { - const auto change = QNodeAddedPropertyChangePtr::create(id(), parameter->id()); + const auto change = QNodeAddedPropertyChangePtr::create(id(), parameter); change->setPropertyName("parameter"); d->notifyObservers(change); } diff --git a/src/render/frontend/qrendertarget.cpp b/src/render/frontend/qrendertarget.cpp index ac55900a2..63e1d48f3 100644 --- a/src/render/frontend/qrendertarget.cpp +++ b/src/render/frontend/qrendertarget.cpp @@ -76,7 +76,7 @@ void QRenderTarget::addOutput(QRenderTargetOutput *output) output->setParent(this); if (d->m_changeArbiter != Q_NULLPTR) { - const auto change = QNodeAddedPropertyChangePtr::create(id(), output->id()); + const auto change = QNodeAddedPropertyChangePtr::create(id(), output); change->setPropertyName("output"); d->notifyObservers(change); } diff --git a/src/render/geometry/qgeometry.cpp b/src/render/geometry/qgeometry.cpp index 600cce2fd..3de908b50 100644 --- a/src/render/geometry/qgeometry.cpp +++ b/src/render/geometry/qgeometry.cpp @@ -112,7 +112,7 @@ void QGeometry::addAttribute(QAttribute *attribute) attribute->setParent(this); if (d->m_changeArbiter != Q_NULLPTR) { - const auto change = QNodeAddedPropertyChangePtr::create(id(), attribute->id()); + const auto change = QNodeAddedPropertyChangePtr::create(id(), attribute); change->setPropertyName("attribute"); d->notifyObservers(change); } diff --git a/src/render/geometry/qgeometryrenderer.cpp b/src/render/geometry/qgeometryrenderer.cpp index 6aad35710..03bb710de 100644 --- a/src/render/geometry/qgeometryrenderer.cpp +++ b/src/render/geometry/qgeometryrenderer.cpp @@ -368,7 +368,7 @@ void QGeometryRenderer::setGeometry(QGeometry *geometry) blockNotifications(blocked); if (d->m_geometry && d->m_changeArbiter) { - const auto change = QNodeAddedPropertyChangePtr::create(id(), d->m_geometry->id()); + const auto change = QNodeAddedPropertyChangePtr::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 fd6ed985f..0075eacc0 100644 --- a/src/render/materialsystem/qeffect.cpp +++ b/src/render/materialsystem/qeffect.cpp @@ -82,7 +82,7 @@ void QEffect::addParameter(QParameter *parameter) parameter->setParent(this); if (d->m_changeArbiter != Q_NULLPTR) { - const auto change = QNodeAddedPropertyChangePtr::create(id(), parameter->id()); + const auto change = QNodeAddedPropertyChangePtr::create(id(), parameter); change->setPropertyName("parameter"); d->notifyObservers(change); } @@ -127,7 +127,7 @@ void QEffect::addTechnique(QTechnique *t) t->setParent(this); if (d->m_changeArbiter != Q_NULLPTR) { - const auto change = QNodeAddedPropertyChangePtr::create(id(), t->id()); + const auto change = QNodeAddedPropertyChangePtr::create(id(), t); change->setPropertyName("technique"); d->notifyObservers(change); } diff --git a/src/render/materialsystem/qmaterial.cpp b/src/render/materialsystem/qmaterial.cpp index 3a1e75117..8adfd6066 100644 --- a/src/render/materialsystem/qmaterial.cpp +++ b/src/render/materialsystem/qmaterial.cpp @@ -138,7 +138,7 @@ void QMaterial::addParameter(QParameter *parameter) parameter->setParent(this); if (d->m_changeArbiter != Q_NULLPTR) { - const auto change = QNodeAddedPropertyChangePtr::create(id(), parameter->id()); + const auto change = QNodeAddedPropertyChangePtr::create(id(), parameter); change->setPropertyName("parameter"); d->notifyObservers(change); } diff --git a/src/render/materialsystem/qrenderpass.cpp b/src/render/materialsystem/qrenderpass.cpp index d3ad56623..88c059ac8 100644 --- a/src/render/materialsystem/qrenderpass.cpp +++ b/src/render/materialsystem/qrenderpass.cpp @@ -99,7 +99,7 @@ void QRenderPass::setShaderProgram(QShaderProgram *shaderProgram) if (d->m_shader && d->m_changeArbiter != Q_NULLPTR) { QNodePropertyChangePtr e(new QNodePropertyChange(NodeAdded, QSceneChange::Node, id())); - const auto change = QNodeAddedPropertyChangePtr::create(id(), d->m_shader->id()); + const auto change = QNodeAddedPropertyChangePtr::create(id(), d->m_shader); change->setPropertyName("shaderProgram"); d->notifyObservers(change); } @@ -127,7 +127,7 @@ void QRenderPass::addFilterKey(QFilterKey *filterKey) filterKey->setParent(this); if (d->m_changeArbiter != Q_NULLPTR) { - const auto change = QNodeAddedPropertyChangePtr::create(id(), filterKey->id()); + const auto change = QNodeAddedPropertyChangePtr::create(id(), filterKey); change->setPropertyName("filterKeys"); d->notifyObservers(change); } @@ -171,7 +171,7 @@ void QRenderPass::addRenderState(QRenderState *state) state->setParent(this); if (d->m_changeArbiter != Q_NULLPTR) { - const auto change = QNodeAddedPropertyChangePtr::create(id(), state->id()); + const auto change = QNodeAddedPropertyChangePtr::create(id(), state); change->setPropertyName("renderState"); d->notifyObservers(change); } @@ -218,7 +218,7 @@ void QRenderPass::addParameter(QParameter *parameter) parameter->setParent(this); if (d->m_changeArbiter != Q_NULLPTR) { - const auto change = QNodeAddedPropertyChangePtr::create(id(), parameter->id()); + const auto change = QNodeAddedPropertyChangePtr::create(id(), parameter); change->setPropertyName("parameter"); 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 = QNodeAddedPropertyChangePtr::create(id(), parameter->id()); + const auto change = QNodeRemovedPropertyChangePtr::create(id(), parameter->id()); change->setPropertyName("parameter"); d->notifyObservers(change); } diff --git a/src/render/materialsystem/qtechnique.cpp b/src/render/materialsystem/qtechnique.cpp index 7353fbe2d..eaa87551e 100644 --- a/src/render/materialsystem/qtechnique.cpp +++ b/src/render/materialsystem/qtechnique.cpp @@ -100,7 +100,7 @@ void QTechnique::addFilterKey(QFilterKey *filterKey) filterKey->setParent(this); if (d->m_changeArbiter != Q_NULLPTR) { - const auto change = QNodeAddedPropertyChangePtr::create(id(), filterKey->id()); + const auto change = QNodeAddedPropertyChangePtr::create(id(), filterKey); change->setPropertyName("filterKeys"); d->notifyObservers(change); } @@ -140,7 +140,7 @@ void QTechnique::addParameter(QParameter *parameter) parameter->setParent(this); if (d->m_changeArbiter != Q_NULLPTR) { - const auto change = QNodeAddedPropertyChangePtr::create(id(), parameter->id()); + const auto change = QNodeAddedPropertyChangePtr::create(id(), parameter); change->setPropertyName("parameter"); 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 = QNodeAddedPropertyChangePtr::create(id(), parameter->id()); + const auto change = QNodeRemovedPropertyChangePtr::create(id(), parameter->id()); change->setPropertyName("parameter"); d->notifyObservers(change); } @@ -179,7 +179,7 @@ void QTechnique::addRenderPass(QRenderPass *pass) pass->setParent(this); if (d->m_changeArbiter != Q_NULLPTR) { - const auto change = QNodeAddedPropertyChangePtr::create(id(), pass->id()); + const auto change = QNodeAddedPropertyChangePtr::create(id(), pass); change->setPropertyName("pass"); d->notifyObservers(change); } @@ -196,7 +196,7 @@ void QTechnique::removeRenderPass(QRenderPass *pass) Q_ASSERT(pass); Q_D(QTechnique); if (d->m_changeArbiter) { - const auto change = QNodeAddedPropertyChangePtr::create(id(), pass->id()); + const auto change = QNodeAddedPropertyChangePtr::create(id(), pass); change->setPropertyName("pass"); d->notifyObservers(change); } diff --git a/src/render/texture/qabstracttexture.cpp b/src/render/texture/qabstracttexture.cpp index 112579b20..927a3cfaf 100644 --- a/src/render/texture/qabstracttexture.cpp +++ b/src/render/texture/qabstracttexture.cpp @@ -279,7 +279,7 @@ void QAbstractTexture::addTextureImage(QAbstractTextureImage *textureImage) textureImage->setParent(this); if (d->m_changeArbiter != Q_NULLPTR) { - const auto change = QNodeAddedPropertyChangePtr::create(id(), textureImage->id()); + const auto change = QNodeAddedPropertyChangePtr::create(id(), textureImage); change->setPropertyName("textureImage"); d->notifyObservers(change); } diff --git a/tests/auto/core/nodes/tst_nodes.cpp b/tests/auto/core/nodes/tst_nodes.cpp index 422b7c823..e30bddfb6 100644 --- a/tests/auto/core/nodes/tst_nodes.cpp +++ b/tests/auto/core/nodes/tst_nodes.cpp @@ -381,6 +381,7 @@ void tst_Nodes::appendSingleChildNodeToNodeSceneExplicitParenting() QVERIFY(additionEvent); QCOMPARE(additionEvent->subjectId(), node->id()); QCOMPARE(additionEvent->addedNodeId(), child->id()); + QCOMPARE(additionEvent->metaObject(), child->metaObject()); } void tst_Nodes::appendSingleChildNodeToNodeSceneImplicitParenting() @@ -423,6 +424,7 @@ void tst_Nodes::appendSingleChildNodeToNodeSceneImplicitParenting() QVERIFY(additionEvent); QCOMPARE(additionEvent->subjectId(), node->id()); QCOMPARE(additionEvent->addedNodeId(), child->id()); + QCOMPARE(additionEvent->metaObject(), child->metaObject()); } void tst_Nodes::appendMultipleChildNodesToNodeScene() @@ -471,6 +473,7 @@ void tst_Nodes::appendMultipleChildNodesToNodeScene() Qt3DCore::QNodeAddedPropertyChangePtr additionEvent = spy.events.takeFirst().change().dynamicCast<Qt3DCore::QNodeAddedPropertyChange>(); QCOMPARE(additionEvent->subjectId(), node->id()); QCOMPARE(additionEvent->addedNodeId(), child->id()); + QCOMPARE(additionEvent->metaObject(), child->metaObject()); } ++i; } @@ -570,9 +573,9 @@ void tst_Nodes::checkParentChangeToOtherParent() QCOMPARE(event2->type(), Qt3DCore::NodeAdded); QCOMPARE(event2->subjectId(), parent2->id()); QCOMPARE(event2->addedNodeId(), child->id()); + QCOMPARE(event2->metaObject(), child->metaObject()); } - void tst_Nodes::removingSingleChildNodeFromNode() { // GIVEN diff --git a/tests/auto/input/action/tst_action.cpp b/tests/auto/input/action/tst_action.cpp index e187647a2..304897781 100644 --- a/tests/auto/input/action/tst_action.cpp +++ b/tests/auto/input/action/tst_action.cpp @@ -38,6 +38,15 @@ #include <Qt3DCore/private/qbackendnode_p.h> #include "testpostmanarbiter.h" +class DummyActionInput : public Qt3DInput::QActionInput +{ + Q_OBJECT +public: + DummyActionInput(Qt3DCore::QNode *parent = nullptr) + : Qt3DInput::QActionInput(parent) + {} +}; + class tst_Action: public QObject { Q_OBJECT @@ -113,8 +122,9 @@ private Q_SLOTS: QCOMPARE(backendAction.isEnabled(), true); // WHEN - Qt3DCore::QNodeId inputId = Qt3DCore::QNodeId::createId(); - const auto nodeAddedChange = Qt3DCore::QNodeAddedPropertyChangePtr::create(Qt3DCore::QNodeId(), inputId); + DummyActionInput input; + const Qt3DCore::QNodeId inputId = input.id(); + const auto nodeAddedChange = Qt3DCore::QNodeAddedPropertyChangePtr::create(Qt3DCore::QNodeId(), &input); nodeAddedChange->setPropertyName("input"); backendAction.sceneChangeEvent(nodeAddedChange); diff --git a/tests/auto/input/axis/tst_axis.cpp b/tests/auto/input/axis/tst_axis.cpp index 28c7b209c..23c528937 100644 --- a/tests/auto/input/axis/tst_axis.cpp +++ b/tests/auto/input/axis/tst_axis.cpp @@ -38,6 +38,15 @@ #include <Qt3DCore/private/qbackendnode_p.h> #include "testpostmanarbiter.h" +class DummyAxisInput : public Qt3DInput::QAxisInput +{ + Q_OBJECT +public: + DummyAxisInput(Qt3DCore::QNode *parent = nullptr) + : Qt3DInput::QAxisInput(parent) + {} +}; + class tst_Axis: public QObject { Q_OBJECT @@ -113,8 +122,9 @@ private Q_SLOTS: QCOMPARE(backendAxis.isEnabled(), true); // WHEN - Qt3DCore::QNodeId inputId = Qt3DCore::QNodeId::createId(); - const auto nodeAddedChange = Qt3DCore::QNodeAddedPropertyChangePtr::create(Qt3DCore::QNodeId(), inputId); + DummyAxisInput input; + const Qt3DCore::QNodeId inputId = input.id(); + const auto nodeAddedChange = Qt3DCore::QNodeAddedPropertyChangePtr::create(Qt3DCore::QNodeId(), &input); nodeAddedChange->setPropertyName("input"); backendAxis.sceneChangeEvent(nodeAddedChange); diff --git a/tests/auto/render/geometry/tst_geometry.cpp b/tests/auto/render/geometry/tst_geometry.cpp index 5188fc83b..8b6b403b6 100644 --- a/tests/auto/render/geometry/tst_geometry.cpp +++ b/tests/auto/render/geometry/tst_geometry.cpp @@ -35,6 +35,16 @@ #include <Qt3DCore/qnoderemovedpropertychange.h> #include "testrenderer.h" +class DummyAttribute : public Qt3DRender::QAttribute +{ + Q_OBJECT +public: + DummyAttribute(Qt3DCore::QNode *parent = nullptr) + : Qt3DRender::QAttribute(parent) + {} +}; + + class tst_RenderGeometry : public QObject { Q_OBJECT @@ -110,10 +120,11 @@ private Q_SLOTS: TestRenderer renderer; Qt3DRender::Render::Geometry renderGeometry; renderGeometry.setRenderer(&renderer); - Qt3DCore::QNodeId geometryId = Qt3DCore::QNodeId::createId(); + + DummyAttribute attribute; // WHEN - const auto nodeAddedChange = Qt3DCore::QNodeAddedPropertyChangePtr::create(Qt3DCore::QNodeId(), geometryId); + const auto nodeAddedChange = Qt3DCore::QNodeAddedPropertyChangePtr::create(Qt3DCore::QNodeId(), &attribute); nodeAddedChange->setPropertyName("attribute"); renderGeometry.sceneChangeEvent(nodeAddedChange); @@ -125,7 +136,7 @@ private Q_SLOTS: QVERIFY(!renderGeometry.isDirty()); // WHEN - const auto nodeRemovedChange = Qt3DCore::QNodeRemovedPropertyChangePtr::create(Qt3DCore::QNodeId(), geometryId); + const auto nodeRemovedChange = Qt3DCore::QNodeRemovedPropertyChangePtr::create(Qt3DCore::QNodeId(), attributeId); nodeRemovedChange->setPropertyName("attribute"); renderGeometry.sceneChangeEvent(nodeRemovedChange); diff --git a/tests/auto/render/geometryrenderer/tst_geometryrenderer.cpp b/tests/auto/render/geometryrenderer/tst_geometryrenderer.cpp index df388448d..ba428226a 100644 --- a/tests/auto/render/geometryrenderer/tst_geometryrenderer.cpp +++ b/tests/auto/render/geometryrenderer/tst_geometryrenderer.cpp @@ -57,10 +57,20 @@ public: QT3D_FUNCTOR(TestFactory) -private: - int m_size; + private: + int m_size; }; +class DummyGeometry : public Qt3DRender::QGeometry +{ + Q_OBJECT +public: + DummyGeometry(Qt3DCore::QNode *parent = nullptr) + : Qt3DRender::QGeometry(parent) + {} +}; + + class tst_RenderGeometryRenderer : public QObject { Q_OBJECT @@ -275,8 +285,9 @@ private Q_SLOTS: QVERIFY(!renderGeometryRenderer.isDirty()); // WHEN - Qt3DCore::QNodeId geometryId = Qt3DCore::QNodeId::createId(); - const auto nodeAddedChange = Qt3DCore::QNodeAddedPropertyChangePtr::create(Qt3DCore::QNodeId(), geometryId); + DummyGeometry geometry; + const Qt3DCore::QNodeId geometryId = geometry.id(); + const auto nodeAddedChange = Qt3DCore::QNodeAddedPropertyChangePtr::create(Qt3DCore::QNodeId(), &geometry); nodeAddedChange->setPropertyName("geometry"); renderGeometryRenderer.sceneChangeEvent(nodeAddedChange); diff --git a/tests/auto/render/material/tst_material.cpp b/tests/auto/render/material/tst_material.cpp index 32734e0a1..466787ce4 100644 --- a/tests/auto/render/material/tst_material.cpp +++ b/tests/auto/render/material/tst_material.cpp @@ -137,7 +137,7 @@ void tst_RenderMaterial::shouldHandleParametersPropertyChange() backend.setRenderer(&renderer); // WHEN - const auto addChange = Qt3DCore::QNodeAddedPropertyChangePtr::create(Qt3DCore::QNodeId(), parameter->id()); + const auto addChange = Qt3DCore::QNodeAddedPropertyChangePtr::create(Qt3DCore::QNodeId(), parameter.data()); addChange->setPropertyName("parameter"); backend.sceneChangeEvent(addChange); diff --git a/tests/auto/render/qmaterial/tst_qmaterial.cpp b/tests/auto/render/qmaterial/tst_qmaterial.cpp index 86556fd36..71775308c 100644 --- a/tests/auto/render/qmaterial/tst_qmaterial.cpp +++ b/tests/auto/render/qmaterial/tst_qmaterial.cpp @@ -300,6 +300,9 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN + QCOMPARE(param->parent(), material); + + // THEN QCOMPARE(arbiter.events.size(), 1); Qt3DCore::QNodeAddedPropertyChangePtr change = arbiter.events.first().staticCast<Qt3DCore::QNodeAddedPropertyChange>(); QCOMPARE(change->propertyName(), "parameter"); diff --git a/tests/auto/render/renderpass/tst_renderpass.cpp b/tests/auto/render/renderpass/tst_renderpass.cpp index 213772857..c42e4d1c0 100644 --- a/tests/auto/render/renderpass/tst_renderpass.cpp +++ b/tests/auto/render/renderpass/tst_renderpass.cpp @@ -134,7 +134,7 @@ private slots: backend.setRenderer(&renderer); // WHEN - const auto addChange = Qt3DCore::QNodeAddedPropertyChangePtr::create(Qt3DCore::QNodeId(), shader->id()); + const auto addChange = Qt3DCore::QNodeAddedPropertyChangePtr::create(Qt3DCore::QNodeId(), shader.data()); addChange->setPropertyName("shaderProgram"); backend.sceneChangeEvent(addChange); @@ -161,7 +161,7 @@ private slots: backend.setRenderer(&renderer); // WHEN - const auto addChange = Qt3DCore::QNodeAddedPropertyChangePtr::create(Qt3DCore::QNodeId(), annotation->id()); + const auto addChange = Qt3DCore::QNodeAddedPropertyChangePtr::create(Qt3DCore::QNodeId(), annotation.data()); addChange->setPropertyName("filterKeys"); backend.sceneChangeEvent(addChange); @@ -189,7 +189,7 @@ private slots: backend.setRenderer(&renderer); // WHEN - const auto addChange = Qt3DCore::QNodeAddedPropertyChangePtr::create(Qt3DCore::QNodeId(), parameter->id()); + const auto addChange = Qt3DCore::QNodeAddedPropertyChangePtr::create(Qt3DCore::QNodeId(), parameter.data()); addChange->setPropertyName("parameter"); backend.sceneChangeEvent(addChange); @@ -220,7 +220,7 @@ private slots: backendState->setPeer(frontendState); // WHEN - const auto addChange = Qt3DCore::QNodeAddedPropertyChangePtr::create(Qt3DCore::QNodeId(), frontendState->id()); + const auto addChange = Qt3DCore::QNodeAddedPropertyChangePtr::create(Qt3DCore::QNodeId(), frontendState); addChange->setPropertyName("renderState"); backend.sceneChangeEvent(addChange); |