diff options
author | Mike Krus <mike.krus@kdab.com> | 2017-03-01 16:18:26 +0000 |
---|---|---|
committer | Mike Krus <mike.krus@kdab.com> | 2017-03-03 10:41:03 +0000 |
commit | d2910f97dc8a754cd8d41efdae8004e1b752cd51 (patch) | |
tree | 752fa136dae725eac6c2abe699138848fac3d3e6 /src/core/services | |
parent | 2519573517979f6a2995f9a445321ef7d62091e8 (diff) |
Make QAbstractServiceProvider a QObject
so it can have signals and slots
Change-Id: I269ee6d1c8fb035864a8d46e9ace18de82911755
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/core/services')
-rw-r--r-- | src/core/services/qabstractserviceprovider_p.h | 9 | ||||
-rw-r--r-- | src/core/services/qeventfilterservice.cpp | 2 | ||||
-rw-r--r-- | src/core/services/qopenglinformationservice.cpp | 2 | ||||
-rw-r--r-- | src/core/services/qservicelocator.cpp | 10 | ||||
-rw-r--r-- | src/core/services/qservicelocator_p.h | 9 |
5 files changed, 17 insertions, 15 deletions
diff --git a/src/core/services/qabstractserviceprovider_p.h b/src/core/services/qabstractserviceprovider_p.h index 2913cee31..a176f0727 100644 --- a/src/core/services/qabstractserviceprovider_p.h +++ b/src/core/services/qabstractserviceprovider_p.h @@ -51,6 +51,7 @@ // We mean it. // +#include <QtCore/private/qobject_p.h> #include <Qt3DCore/qt3dcore_global.h> #include <QtCore/qstring.h> @@ -58,16 +59,16 @@ QT_BEGIN_NAMESPACE namespace Qt3DCore { -class QAbstractServiceProviderPrivate +class QAbstractServiceProviderPrivate : public QObjectPrivate { public: - QAbstractServiceProviderPrivate(int type, const QString &description = QString()) - : m_type(type) + explicit QAbstractServiceProviderPrivate(int type, const QString &description = QString()) + : QObjectPrivate() + , m_type(type) , m_description(description) {} Q_DECLARE_PUBLIC(QAbstractServiceProvider) - QAbstractServiceProvider *q_ptr; int m_type; QString m_description; diff --git a/src/core/services/qeventfilterservice.cpp b/src/core/services/qeventfilterservice.cpp index 489ab9b45..8f6687001 100644 --- a/src/core/services/qeventfilterservice.cpp +++ b/src/core/services/qeventfilterservice.cpp @@ -83,6 +83,8 @@ public: : QAbstractServiceProviderPrivate(QServiceLocator::EventFilterService, QStringLiteral("Default event filter service implementation")) {} + Q_DECLARE_PUBLIC(QEventFilterService) + void registerEventFilter(QObject *eventFilter, int priority) { for (int i = 0, m = m_eventFilters.size(); i < m; ++i) diff --git a/src/core/services/qopenglinformationservice.cpp b/src/core/services/qopenglinformationservice.cpp index 0f62544c8..c1c05018e 100644 --- a/src/core/services/qopenglinformationservice.cpp +++ b/src/core/services/qopenglinformationservice.cpp @@ -62,7 +62,7 @@ namespace Qt3DCore { instantiate a QOpenGLInformationService object. */ QOpenGLInformationService::QOpenGLInformationService(const QString &description) - : QAbstractServiceProvider(QServiceLocator::OpenGLInformation, description) + : QAbstractServiceProvider(*new QOpenGLInformationServicePrivate(description)) { } diff --git a/src/core/services/qservicelocator.cpp b/src/core/services/qservicelocator.cpp index 3d3d56386..176d9b078 100644 --- a/src/core/services/qservicelocator.cpp +++ b/src/core/services/qservicelocator.cpp @@ -53,17 +53,15 @@ namespace Qt3DCore { \inmodule Qt3DCore */ -QAbstractServiceProvider::QAbstractServiceProvider(int type, const QString &description) - : d_ptr(new QAbstractServiceProviderPrivate(type, description)) +QAbstractServiceProvider::QAbstractServiceProvider(int type, const QString &description, QObject *parent) + : QObject(*new QAbstractServiceProviderPrivate(type, description), parent) { - d_ptr->q_ptr = this; } /* \internal */ -QAbstractServiceProvider::QAbstractServiceProvider(QAbstractServiceProviderPrivate &dd) - : d_ptr(&dd) +QAbstractServiceProvider::QAbstractServiceProvider(QAbstractServiceProviderPrivate &dd, QObject *parent) + : QObject(dd, parent) { - d_ptr->q_ptr = this; } QAbstractServiceProvider::~QAbstractServiceProvider() diff --git a/src/core/services/qservicelocator_p.h b/src/core/services/qservicelocator_p.h index c68b56ffd..db402bb90 100644 --- a/src/core/services/qservicelocator_p.h +++ b/src/core/services/qservicelocator_p.h @@ -53,6 +53,7 @@ #include <Qt3DCore/qt3dcore_global.h> #include <QScopedPointer> +#include <QObject> QT_BEGIN_NAMESPACE @@ -60,8 +61,9 @@ namespace Qt3DCore { class QAbstractServiceProviderPrivate; -class QT3DCORESHARED_EXPORT QAbstractServiceProvider +class QT3DCORESHARED_EXPORT QAbstractServiceProvider : public QObject { + Q_OBJECT public: virtual ~QAbstractServiceProvider(); @@ -69,9 +71,8 @@ public: QString description() const; protected: - QAbstractServiceProvider(int type, const QString &description); - QAbstractServiceProvider(QAbstractServiceProviderPrivate &dd); - QScopedPointer<QAbstractServiceProviderPrivate> d_ptr; + explicit QAbstractServiceProvider(int type, const QString &description, QObject* parent = nullptr); + explicit QAbstractServiceProvider(QAbstractServiceProviderPrivate &dd, QObject* parent = nullptr); private: Q_DISABLE_COPY(QAbstractServiceProvider) |