summaryrefslogtreecommitdiffstats
path: root/src/core/services
diff options
context:
space:
mode:
authorMike Krus <mike.krus@kdab.com>2017-03-01 16:18:26 +0000
committerMike Krus <mike.krus@kdab.com>2017-03-03 10:41:03 +0000
commitd2910f97dc8a754cd8d41efdae8004e1b752cd51 (patch)
tree752fa136dae725eac6c2abe699138848fac3d3e6 /src/core/services
parent2519573517979f6a2995f9a445321ef7d62091e8 (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.h9
-rw-r--r--src/core/services/qeventfilterservice.cpp2
-rw-r--r--src/core/services/qopenglinformationservice.cpp2
-rw-r--r--src/core/services/qservicelocator.cpp10
-rw-r--r--src/core/services/qservicelocator_p.h9
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)