diff options
author | Kevin Ottens <kevin.ottens@kdab.com> | 2015-12-01 12:02:19 +0100 |
---|---|---|
committer | Kevin Ottens <kevin.ottens@kdab.com> | 2015-12-01 14:23:52 +0000 |
commit | c509c85b63cb062aaf7b1a3044dcbb6d80610c89 (patch) | |
tree | 08ff2b0922773aa0cb610722fee57ab7ecb33a44 | |
parent | 40c2346f137623629983de94ffcb045f5f8ce35e (diff) |
Move the QT3D_REGISTER_*_ASPECT macros to QAbstractAspect
First step toward turning QAspectFactory into a private class.
Change-Id: Ia62aae820fde1ab3cee0c5852d10981c6b9f4970
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
-rw-r--r-- | src/core/aspects/qabstractaspect.h | 26 | ||||
-rw-r--r-- | src/core/aspects/qaspectfactory.cpp | 4 | ||||
-rw-r--r-- | src/core/aspects/qaspectfactory.h | 19 | ||||
-rw-r--r-- | src/input/frontend/qinputaspect.cpp | 1 | ||||
-rw-r--r-- | src/logic/qlogicaspect.cpp | 1 | ||||
-rw-r--r-- | src/render/frontend/qrenderaspect.cpp | 1 |
6 files changed, 28 insertions, 24 deletions
diff --git a/src/core/aspects/qabstractaspect.h b/src/core/aspects/qabstractaspect.h index a0b298cb2..55ded6e5b 100644 --- a/src/core/aspects/qabstractaspect.h +++ b/src/core/aspects/qabstractaspect.h @@ -109,4 +109,30 @@ void QAbstractAspect::registerBackendType(const QBackendNodeFunctorPtr &functor) QT_END_NAMESPACE +#define QT3D_REGISTER_NAMESPACED_ASPECT(name, AspectNamespace, AspectType) \ + QT_BEGIN_NAMESPACE \ + namespace Qt3DCore { \ + typedef QAbstractAspect *(*AspectCreateFunction)(QObject *); \ + QT3DCORESHARED_EXPORT void qt3d_QAspectFactory_addDefaultFactory(const QString &, AspectCreateFunction); \ + } \ + QT_END_NAMESPACE \ + namespace { \ + QAbstractAspect *qt3d_ ## AspectType ## _createFunction(QObject *parent) \ + { \ + using namespace AspectNamespace; \ + return new AspectType(parent); \ + } \ + \ + void qt3d_ ## AspectType ## _registerFunction() \ + { \ + using namespace AspectNamespace; \ + qt3d_QAspectFactory_addDefaultFactory(QStringLiteral(name), qt3d_ ## AspectType ## _createFunction); \ + } \ + \ + Q_CONSTRUCTOR_FUNCTION(qt3d_ ## AspectType ## _registerFunction) \ + } + +#define QT3D_REGISTER_ASPECT(name, AspectType) \ + QT3D_REGISTER_NAMESPACED_ASPECT(name, QT_PREPEND_NAMESPACE(Qt3DCore), AspectType) + #endif // QT3DCORE_ABSTRACTASPECT_H diff --git a/src/core/aspects/qaspectfactory.cpp b/src/core/aspects/qaspectfactory.cpp index 673ff5bdd..ff1bc7d2b 100644 --- a/src/core/aspects/qaspectfactory.cpp +++ b/src/core/aspects/qaspectfactory.cpp @@ -48,8 +48,8 @@ namespace Qt3DCore { typedef QHash<QString, QAspectFactory::CreateFunction> defaultFactories_t; Q_GLOBAL_STATIC(defaultFactories_t, defaultFactories) -QT3DCORESHARED_EXPORT void qt3d_QAspectFactoryPrivate_addDefaultFactory(const QString &name, - QAspectFactory::CreateFunction factory) +QT3DCORESHARED_EXPORT void qt3d_QAspectFactory_addDefaultFactory(const QString &name, + QAspectFactory::CreateFunction factory) { defaultFactories->insert(name, factory); } diff --git a/src/core/aspects/qaspectfactory.h b/src/core/aspects/qaspectfactory.h index 9280c5340..d0f867f6e 100644 --- a/src/core/aspects/qaspectfactory.h +++ b/src/core/aspects/qaspectfactory.h @@ -89,23 +89,4 @@ private: QT_END_NAMESPACE -#define QT3D_REGISTER_NAMESPACED_ASPECT(name, AspectNamespace, AspectType) \ - QT_BEGIN_NAMESPACE \ - namespace Qt3DCore { \ - QT3DCORESHARED_EXPORT void qt3d_QAspectFactoryPrivate_addDefaultFactory(const QString &, QAspectFactory::CreateFunction); \ - } \ - QT_END_NAMESPACE \ - namespace { \ - void qt3d_ ## AspectType ## _registerFunction() \ - { \ - using namespace QT_PREPEND_NAMESPACE(Qt3DCore); \ - qt3d_QAspectFactoryPrivate_addDefaultFactory(QStringLiteral(name), &QAspectFactory::functionHelper<AspectNamespace::AspectType>); \ - } \ - \ - Q_CONSTRUCTOR_FUNCTION(qt3d_ ## AspectType ## _registerFunction) \ - } - -#define QT3D_REGISTER_ASPECT(name, AspectType) \ - QT3D_REGISTER_NAMESPACED_ASPECT(name, , AspectType) - #endif // QT3DCORE_QASPECTFACTORY_H diff --git a/src/input/frontend/qinputaspect.cpp b/src/input/frontend/qinputaspect.cpp index dd214c163..d07a5b366 100644 --- a/src/input/frontend/qinputaspect.cpp +++ b/src/input/frontend/qinputaspect.cpp @@ -42,7 +42,6 @@ #include "keyboardinput_p.h" #include "mousecontroller_p.h" #include "mouseinput_p.h" -#include <Qt3DCore/qaspectfactory.h> #include <Qt3DCore/qnodevisitor.h> #include <Qt3DCore/qscenepropertychange.h> #include <Qt3DInput/qkeyboardcontroller.h> diff --git a/src/logic/qlogicaspect.cpp b/src/logic/qlogicaspect.cpp index 098aa1793..c73091b21 100644 --- a/src/logic/qlogicaspect.cpp +++ b/src/logic/qlogicaspect.cpp @@ -47,7 +47,6 @@ #include <Qt3DCore/qnode.h> #include <Qt3DCore/private/qchangearbiter_p.h> #include <Qt3DCore/private/qscene_p.h> -#include <Qt3DCore/qaspectfactory.h> #include <Qt3DCore/qservicelocator.h> #include <QThread> diff --git a/src/render/frontend/qrenderaspect.cpp b/src/render/frontend/qrenderaspect.cpp index d6e0541c6..13b629373 100644 --- a/src/render/frontend/qrenderaspect.cpp +++ b/src/render/frontend/qrenderaspect.cpp @@ -122,7 +122,6 @@ #include <Qt3DCore/qscenepropertychange.h> #include <Qt3DCore/qnode.h> -#include <Qt3DCore/qaspectfactory.h> #include <Qt3DCore/qservicelocator.h> #include <QDebug> |