diff options
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/aspects/qabstractaspect.cpp | 10 | ||||
-rw-r--r-- | src/core/nodes/qbackendnode.cpp | 18 | ||||
-rw-r--r-- | src/core/nodes/qbackendnode.h | 3 | ||||
-rw-r--r-- | src/core/nodes/qbackendnode_p.h | 1 |
4 files changed, 27 insertions, 5 deletions
diff --git a/src/core/aspects/qabstractaspect.cpp b/src/core/aspects/qabstractaspect.cpp index 3f569a4ed..1e88e6216 100644 --- a/src/core/aspects/qabstractaspect.cpp +++ b/src/core/aspects/qabstractaspect.cpp @@ -224,6 +224,11 @@ void QAbstractAspectPrivate::syncDirtyFrontEndNodes(const QVector<QNode *> &node } } +void QAbstractAspectPrivate::syncDirtyFrontEndNode(QNode *node, QBackendNode *backend, bool firstTime) const +{ + backend->syncFromFrontEnd(node, firstTime); +} + void QAbstractAspectPrivate::syncDirtyEntityComponentNodes(const QVector<ComponentRelationshipChange> &changes) { auto getBackend = [this] (QNode *node) -> QBackendNode* { @@ -258,11 +263,6 @@ void QAbstractAspectPrivate::syncDirtyEntityComponentNodes(const QVector<Compone } } -void QAbstractAspectPrivate::syncDirtyFrontEndNode(QNode *, QBackendNode *, bool) const -{ - // this would usually be overloaded in derived aspect classes -} - QBackendNode *QAbstractAspectPrivate::createBackendNode(const NodeTreeChange &change) const { const QMetaObject *metaObj = change.metaObj; diff --git a/src/core/nodes/qbackendnode.cpp b/src/core/nodes/qbackendnode.cpp index 433c305cc..4d15e1789 100644 --- a/src/core/nodes/qbackendnode.cpp +++ b/src/core/nodes/qbackendnode.cpp @@ -61,6 +61,8 @@ QBackendNodePrivate::QBackendNodePrivate(QBackendNode::Mode mode) { } +QBackendNodePrivate::~QBackendNodePrivate() = default; + void QBackendNodePrivate::setEnabled(bool enabled) { m_enabled = enabled; @@ -186,6 +188,22 @@ QBackendNode::Mode QBackendNode::mode() const Q_DECL_NOTHROW } /*! + * \brief QBackendNode::syncFromFrontEnd + * \param frontEnd + * \param firstTime + * + * This is called by the aspect when a \a frontEnd node needs to synchronize it's changes + * with the backend (normally due to property changes). + * + * \a firstTime will be true if the backend node was just created + */ +void QBackendNode::syncFromFrontEnd(const QNode *frontEnd, bool firstTime) +{ + Q_UNUSED(frontEnd) + Q_UNUSED(firstTime) +} + +/*! * \internal */ QBackendNode::QBackendNode(QBackendNodePrivate &dd) diff --git a/src/core/nodes/qbackendnode.h b/src/core/nodes/qbackendnode.h index 4af1ae996..cefa41c52 100644 --- a/src/core/nodes/qbackendnode.h +++ b/src/core/nodes/qbackendnode.h @@ -47,6 +47,7 @@ QT_BEGIN_NAMESPACE namespace Qt3DCore { +class QNode; class QBackendNodePrivate; class QBackendNode; class QAspectEngine; @@ -84,6 +85,8 @@ public: Mode mode() const Q_DECL_NOEXCEPT; + virtual void syncFromFrontEnd(const QNode *frontEnd, bool firstTime); + protected: Q_DECLARE_PRIVATE(QBackendNode) explicit QBackendNode(QBackendNodePrivate &dd); diff --git a/src/core/nodes/qbackendnode_p.h b/src/core/nodes/qbackendnode_p.h index 8a4e4c57c..921c83a0b 100644 --- a/src/core/nodes/qbackendnode_p.h +++ b/src/core/nodes/qbackendnode_p.h @@ -65,6 +65,7 @@ class Q_3DCORE_PRIVATE_EXPORT QBackendNodePrivate { public: QBackendNodePrivate(QBackendNode::Mode mode); + virtual ~QBackendNodePrivate(); void setEnabled(bool enabled); |