summaryrefslogtreecommitdiffstats
path: root/src/core
diff options
context:
space:
mode:
Diffstat (limited to 'src/core')
-rw-r--r--src/core/aspects/qabstractaspect.cpp6
-rw-r--r--src/core/aspects/qabstractaspect.h9
2 files changed, 15 insertions, 0 deletions
diff --git a/src/core/aspects/qabstractaspect.cpp b/src/core/aspects/qabstractaspect.cpp
index c049d3503..8f1afb30e 100644
--- a/src/core/aspects/qabstractaspect.cpp
+++ b/src/core/aspects/qabstractaspect.cpp
@@ -157,6 +157,12 @@ void QAbstractAspect::registerBackendType(const QMetaObject &obj, const QBackend
d->m_backendCreatorFunctors.insert(&obj, functor);
}
+void QAbstractAspect::unregisterBackendType(const QMetaObject &obj)
+{
+ Q_D(QAbstractAspect);
+ d->m_backendCreatorFunctors.remove(&obj);
+}
+
void QAbstractAspectPrivate::sceneNodeAdded(QSceneChangePtr &change)
{
QNodeCreatedChangeBasePtr creationChange = qSharedPointerCast<QNodeCreatedChangeBase>(change);
diff --git a/src/core/aspects/qabstractaspect.h b/src/core/aspects/qabstractaspect.h
index 86938d2d2..a4ad68c1d 100644
--- a/src/core/aspects/qabstractaspect.h
+++ b/src/core/aspects/qabstractaspect.h
@@ -76,6 +76,9 @@ protected:
template<class Frontend>
void registerBackendType(const QBackendNodeMapperPtr &functor);
void registerBackendType(const QMetaObject &, const QBackendNodeMapperPtr &functor);
+ template<class Frontend>
+ void unregisterBackendType();
+ void unregisterBackendType(const QMetaObject &);
private:
virtual QVariant executeCommand(const QStringList &args);
@@ -99,6 +102,12 @@ void QAbstractAspect::registerBackendType(const QBackendNodeMapperPtr &functor)
registerBackendType(Frontend::staticMetaObject, functor);
}
+template<class Frontend>
+void QAbstractAspect::unregisterBackendType()
+{
+ unregisterBackendType(Frontend::staticMetaObject);
+}
+
} // namespace Qt3DCore
QT_END_NAMESPACE