summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/core/nodes/qnode.cpp2
-rw-r--r--src/core/qnodeaddedpropertychange.cpp16
-rw-r--r--src/core/qnodeaddedpropertychange.h5
-rw-r--r--src/core/qnodeaddedpropertychange_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.cpp10
-rw-r--r--src/render/materialsystem/qtechnique.cpp10
-rw-r--r--src/render/texture/qabstracttexture.cpp2
-rw-r--r--tests/auto/core/nodes/tst_nodes.cpp5
-rw-r--r--tests/auto/input/action/tst_action.cpp14
-rw-r--r--tests/auto/input/axis/tst_axis.cpp14
-rw-r--r--tests/auto/render/geometry/tst_geometry.cpp17
-rw-r--r--tests/auto/render/geometryrenderer/tst_geometryrenderer.cpp19
-rw-r--r--tests/auto/render/material/tst_material.cpp2
-rw-r--r--tests/auto/render/qmaterial/tst_qmaterial.cpp3
-rw-r--r--tests/auto/render/renderpass/tst_renderpass.cpp8
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);