diff options
author | Mike Krus <mike.krus@kdab.com> | 2019-12-02 19:49:40 +0000 |
---|---|---|
committer | Mike Krus <mike.krus@kdab.com> | 2019-12-03 09:07:36 +0000 |
commit | 568b2d62e6e07b40d602bcd2a1c2e8e566c41b9f (patch) | |
tree | 9cadf41046830668d77884b8d4f80803d1152ae9 /src/core/aspects | |
parent | ac70d64a037e58a1e8c0fdebc83809f50948f742 (diff) |
Revert "Fix post FF API changes"
84766ed9098f10efc53e4e43a75eef38fce7fbf6
Change-Id: I12341ec1b7bc68a7586c6671aa7b8f21caed17e0
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Diffstat (limited to 'src/core/aspects')
-rw-r--r-- | src/core/aspects/qabstractaspect.cpp | 30 | ||||
-rw-r--r-- | src/core/aspects/qabstractaspect.h | 12 | ||||
-rw-r--r-- | src/core/aspects/qabstractaspect_p.h | 12 | ||||
-rw-r--r-- | src/core/aspects/qaspectmanager.cpp | 4 |
4 files changed, 36 insertions, 22 deletions
diff --git a/src/core/aspects/qabstractaspect.cpp b/src/core/aspects/qabstractaspect.cpp index 6e0d3bd02..e2bb4c9c7 100644 --- a/src/core/aspects/qabstractaspect.cpp +++ b/src/core/aspects/qabstractaspect.cpp @@ -92,13 +92,6 @@ void QAbstractAspectPrivate::onEngineAboutToShutdown() } /*! \internal */ -void QAbstractAspectPrivate::registerBackendType(const QMetaObject &obj, const QBackendNodeMapperPtr &functor, bool supportsSyncing) -{ - const auto f = supportsSyncing ? QAbstractAspectPrivate::SupportsSyncing : QAbstractAspectPrivate::DefaultMapper; - m_backendCreatorFunctors.insert(&obj, {functor, f}); -} - -/*! \internal */ void QAbstractAspectPrivate::unregisterBackendType(const QMetaObject &mo) { m_backendCreatorFunctors.remove(&mo); @@ -190,6 +183,13 @@ void QAbstractAspect::registerBackendType(const QMetaObject &obj, const QBackend d->m_backendCreatorFunctors.insert(&obj, {functor, QAbstractAspectPrivate::DefaultMapper}); } +void QAbstractAspect::registerBackendType(const QMetaObject &obj, const QBackendNodeMapperPtr &functor, bool supportsSyncing) +{ + Q_D(QAbstractAspect); + const auto f = supportsSyncing ? QAbstractAspectPrivate::SupportsSyncing : QAbstractAspectPrivate::DefaultMapper; + d->m_backendCreatorFunctors.insert(&obj, {functor, f}); +} + void QAbstractAspect::unregisterBackendType(const QMetaObject &obj) { Q_D(QAbstractAspect); @@ -198,16 +198,28 @@ void QAbstractAspect::unregisterBackendType(const QMetaObject &obj) QVariant QAbstractAspect::executeCommand(const QStringList &args) { - Q_UNUSED(args) + Q_UNUSED(args); return QVariant(); } QVector<QAspectJobPtr> QAbstractAspect::jobsToExecute(qint64 time) { - Q_UNUSED(time) + Q_UNUSED(time); return QVector<QAspectJobPtr>(); } +void QAbstractAspect::syncDirtyFrontEndNodes(const QVector<QNode *> &nodes) +{ + Q_D(QAbstractAspect); + d->syncDirtyFrontEndNodes(nodes); +} + +void QAbstractAspect::syncDirtyFrontEndSubNodes(const QVector<NodeRelationshipChange> &nodes) +{ + Q_D(QAbstractAspect); + d->syncDirtyFrontEndSubNodes(nodes); +} + QAbstractAspectPrivate::BackendNodeMapperAndInfo QAbstractAspectPrivate::mapperForNode(const QMetaObject *metaObj) const { Q_ASSERT(metaObj); diff --git a/src/core/aspects/qabstractaspect.h b/src/core/aspects/qabstractaspect.h index cb3d02089..8059421a6 100644 --- a/src/core/aspects/qabstractaspect.h +++ b/src/core/aspects/qabstractaspect.h @@ -78,12 +78,18 @@ protected: template<class Frontend> void registerBackendType(const QBackendNodeMapperPtr &functor); + template<class Frontend, bool supportsSyncing> + void registerBackendType(const QBackendNodeMapperPtr &functor); void registerBackendType(const QMetaObject &obj, const QBackendNodeMapperPtr &functor); + void registerBackendType(const QMetaObject &obj, const QBackendNodeMapperPtr &functor, bool supportsSyncing); template<class Frontend> void unregisterBackendType(); void unregisterBackendType(const QMetaObject &); private: + void syncDirtyFrontEndNodes(const QVector<QNode *> &nodes); + void syncDirtyFrontEndSubNodes(const QVector<NodeRelationshipChange> &nodes); + virtual QVariant executeCommand(const QStringList &args); virtual QVector<QAspectJobPtr> jobsToExecute(qint64 time); @@ -105,6 +111,12 @@ void QAbstractAspect::registerBackendType(const QBackendNodeMapperPtr &functor) registerBackendType(Frontend::staticMetaObject, functor); } +template<class Frontend, bool supportsSyncing> +void QAbstractAspect::registerBackendType(const QBackendNodeMapperPtr &functor) +{ + registerBackendType(Frontend::staticMetaObject, functor, supportsSyncing); +} + template<class Frontend> void QAbstractAspect::unregisterBackendType() { diff --git a/src/core/aspects/qabstractaspect_p.h b/src/core/aspects/qabstractaspect_p.h index b4120cb20..b8ef5dbb6 100644 --- a/src/core/aspects/qabstractaspect_p.h +++ b/src/core/aspects/qabstractaspect_p.h @@ -57,7 +57,6 @@ #include <Qt3DCore/private/qaspectjobproviderinterface_p.h> #include <Qt3DCore/private/qbackendnode_p.h> #include <Qt3DCore/private/qt3dcore_global_p.h> -#include <Qt3DCore/private/qscenechange_p.h> #include <QtCore/private/qobject_p.h> #include <QMutex> @@ -138,10 +137,7 @@ public: virtual void onEngineAboutToShutdown(); - // TODO: Make public at some point - template<class Frontend, bool supportsSyncing> - void registerBackendType(const QBackendNodeMapperPtr &functor); - void registerBackendType(const QMetaObject &obj, const QBackendNodeMapperPtr &functor, bool supportsSyncing); + // TODO: Make these public in 5.8 template<class Frontend> void unregisterBackendType(); void unregisterBackendType(const QMetaObject &mo); @@ -167,12 +163,6 @@ public: static QAbstractAspectPrivate *get(QAbstractAspect *aspect); }; -template<class Frontend, bool supportsSyncing> -void QAbstractAspectPrivate::registerBackendType(const QBackendNodeMapperPtr &functor) -{ - registerBackendType(Frontend::staticMetaObject, functor, supportsSyncing); -} - template<class Frontend> void QAbstractAspectPrivate::unregisterBackendType() { diff --git a/src/core/aspects/qaspectmanager.cpp b/src/core/aspects/qaspectmanager.cpp index f24248399..5c83e0799 100644 --- a/src/core/aspects/qaspectmanager.cpp +++ b/src/core/aspects/qaspectmanager.cpp @@ -484,13 +484,13 @@ void QAspectManager::processFrame() const auto dirtySubNodes = m_changeArbiter->takeDirtyFrontEndSubNodes(); if (dirtySubNodes.size()) for (QAbstractAspect *aspect : qAsConst(m_aspects)) - QAbstractAspectPrivate::get(aspect)->syncDirtyFrontEndSubNodes(dirtySubNodes); + aspect->syncDirtyFrontEndSubNodes(dirtySubNodes); // Sync property updates const auto dirtyFrontEndNodes = m_changeArbiter->takeDirtyFrontEndNodes(); if (dirtyFrontEndNodes.size()) for (QAbstractAspect *aspect : qAsConst(m_aspects)) - QAbstractAspectPrivate::get(aspect)->syncDirtyFrontEndNodes(dirtyFrontEndNodes); + aspect->syncDirtyFrontEndNodes(dirtyFrontEndNodes); // TO DO: Having this done in the main thread actually means aspects could just // as simply read info out of the Frontend classes without risk of introducing |