summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVaL Doroshchuk <valentyn.doroshchuk@qt.io>2019-08-19 11:19:06 +0200
committerVaL Doroshchuk <valentyn.doroshchuk@qt.io>2019-08-23 14:37:10 +0200
commitb62171062be100186a71d00610c15a0b07d07c72 (patch)
treea8c0be5f3035f734a46721bcc9171224c742d19e
parent0250b243d1d43d904622433bf632b249c21e7323 (diff)
Make QMediaObjectPrivate as QObjectPrivate
Since QMediaObject is QObject, and it uses d_ptr, it is sane to move QMediaObjectPrivate to QObjectPrivate and use standard way of using private impl. NOTE : If some users inherit from QMediaObjectPrivate in their code, they probably initialize and delete d_ptr manually which would cause a crash now. But using QMediaObjectPrivate without QMediaObject should be considered as incorrect usage. Task-number: QTBUG-77630 Change-Id: I147e3b3dc67a8c2765b28f752db196b4d7fca224 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
-rw-r--r--src/multimedia/camera/qcamerafocus.cpp8
-rw-r--r--src/multimedia/camera/qcamerafocus.h4
-rw-r--r--src/multimedia/camera/qcameraimageprocessing.cpp8
-rw-r--r--src/multimedia/camera/qcameraimageprocessing.h4
-rw-r--r--src/multimedia/qmediaobject.cpp16
-rw-r--r--src/multimedia/qmediaobject.h4
-rw-r--r--src/multimedia/qmediaobject_p.h7
7 files changed, 20 insertions, 31 deletions
diff --git a/src/multimedia/camera/qcamerafocus.cpp b/src/multimedia/camera/qcamerafocus.cpp
index e73a8ea46..775e49b63 100644
--- a/src/multimedia/camera/qcamerafocus.cpp
+++ b/src/multimedia/camera/qcamerafocus.cpp
@@ -325,8 +325,6 @@ class QCameraFocusPrivate : public QMediaObjectPrivate
public:
void initControls();
- QCameraFocus *q_ptr;
-
QCamera *camera;
QCameraFocusControl *focusControl;
@@ -373,12 +371,11 @@ void QCameraFocusPrivate::initControls()
Construct a QCameraFocus for \a camera.
*/
-QCameraFocus::QCameraFocus(QCamera *camera):
- QObject(camera), d_ptr(new QCameraFocusPrivate)
+QCameraFocus::QCameraFocus(QCamera *camera)
+ : QObject(*new QCameraFocusPrivate, camera)
{
Q_D(QCameraFocus);
d->camera = camera;
- d->q_ptr = this;
d->initControls();
}
@@ -389,7 +386,6 @@ QCameraFocus::QCameraFocus(QCamera *camera):
QCameraFocus::~QCameraFocus()
{
- delete d_ptr;
}
/*!
diff --git a/src/multimedia/camera/qcamerafocus.h b/src/multimedia/camera/qcamerafocus.h
index 024f504e9..a5d7725e3 100644
--- a/src/multimedia/camera/qcamerafocus.h
+++ b/src/multimedia/camera/qcamerafocus.h
@@ -162,7 +162,9 @@ private:
Q_DISABLE_COPY(QCameraFocus)
Q_DECLARE_PRIVATE(QCameraFocus)
- QCameraFocusPrivate *d_ptr;
+#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
+ QCameraFocusPrivate *d_ptr_deprecated;
+#endif
};
Q_DECLARE_OPERATORS_FOR_FLAGS(QCameraFocus::FocusModes)
diff --git a/src/multimedia/camera/qcameraimageprocessing.cpp b/src/multimedia/camera/qcameraimageprocessing.cpp
index c2cefeae7..0328f4a56 100644
--- a/src/multimedia/camera/qcameraimageprocessing.cpp
+++ b/src/multimedia/camera/qcameraimageprocessing.cpp
@@ -114,8 +114,6 @@ class QCameraImageProcessingPrivate : public QMediaObjectPrivate
public:
void initControls();
- QCameraImageProcessing *q_ptr;
-
QCamera *camera;
QCameraImageProcessingControl *imageControl;
bool available;
@@ -140,12 +138,11 @@ void QCameraImageProcessingPrivate::initControls()
Construct a QCameraImageProcessing for \a camera.
*/
-QCameraImageProcessing::QCameraImageProcessing(QCamera *camera):
- QObject(camera), d_ptr(new QCameraImageProcessingPrivate)
+QCameraImageProcessing::QCameraImageProcessing(QCamera *camera)
+ : QObject(*new QCameraImageProcessingPrivate, camera)
{
Q_D(QCameraImageProcessing);
d->camera = camera;
- d->q_ptr = this;
d->initControls();
}
@@ -156,7 +153,6 @@ QCameraImageProcessing::QCameraImageProcessing(QCamera *camera):
QCameraImageProcessing::~QCameraImageProcessing()
{
- delete d_ptr;
}
diff --git a/src/multimedia/camera/qcameraimageprocessing.h b/src/multimedia/camera/qcameraimageprocessing.h
index e4ad00ff8..f76daf85e 100644
--- a/src/multimedia/camera/qcameraimageprocessing.h
+++ b/src/multimedia/camera/qcameraimageprocessing.h
@@ -126,7 +126,9 @@ private:
Q_DISABLE_COPY(QCameraImageProcessing)
Q_DECLARE_PRIVATE(QCameraImageProcessing)
- QCameraImageProcessingPrivate *d_ptr;
+#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
+ QCameraImageProcessingPrivate *d_ptr_deprecated;
+#endif
};
QT_END_NAMESPACE
diff --git a/src/multimedia/qmediaobject.cpp b/src/multimedia/qmediaobject.cpp
index a12cab404..b5fc3273b 100644
--- a/src/multimedia/qmediaobject.cpp
+++ b/src/multimedia/qmediaobject.cpp
@@ -113,7 +113,6 @@ void QMediaObjectPrivate::_q_availabilityChanged()
QMediaObject::~QMediaObject()
{
- delete d_ptr;
}
/*!
@@ -230,15 +229,11 @@ void QMediaObject::unbind(QObject *object)
constructor is protected.
*/
-QMediaObject::QMediaObject(QObject *parent, QMediaService *service):
- QObject(parent),
- d_ptr(new QMediaObjectPrivate)
-
+QMediaObject::QMediaObject(QObject *parent, QMediaService *service)
+ : QObject(*new QMediaObjectPrivate, parent)
{
Q_D(QMediaObject);
- d->q_ptr = this;
-
d->notifyTimer = new QTimer(this);
d->notifyTimer->setInterval(1000);
connect(d->notifyTimer, SIGNAL(timeout()), SLOT(_q_notify()));
@@ -252,13 +247,10 @@ QMediaObject::QMediaObject(QObject *parent, QMediaService *service):
\internal
*/
-QMediaObject::QMediaObject(QMediaObjectPrivate &dd, QObject *parent,
- QMediaService *service):
- QObject(parent),
- d_ptr(&dd)
+QMediaObject::QMediaObject(QMediaObjectPrivate &dd, QObject *parent, QMediaService *service)
+ : QObject(dd, parent)
{
Q_D(QMediaObject);
- d->q_ptr = this;
d->notifyTimer = new QTimer(this);
d->notifyTimer->setInterval(1000);
diff --git a/src/multimedia/qmediaobject.h b/src/multimedia/qmediaobject.h
index 5788254b8..fabd015fe 100644
--- a/src/multimedia/qmediaobject.h
+++ b/src/multimedia/qmediaobject.h
@@ -93,7 +93,9 @@ protected:
void addPropertyWatch(QByteArray const &name);
void removePropertyWatch(QByteArray const &name);
- QMediaObjectPrivate *d_ptr;
+#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
+ QMediaObjectPrivate *d_ptr_deprecated;
+#endif
private:
void setupControls();
diff --git a/src/multimedia/qmediaobject_p.h b/src/multimedia/qmediaobject_p.h
index 85caf9a50..5067fa6d1 100644
--- a/src/multimedia/qmediaobject_p.h
+++ b/src/multimedia/qmediaobject_p.h
@@ -56,6 +56,7 @@
#include <QtCore/qtimer.h>
#include "qmediaobject.h"
+#include "private/qobject_p.h"
QT_BEGIN_NAMESPACE
@@ -68,12 +69,12 @@ class QMediaAvailabilityControl;
friend class Class;
-class QMediaObjectPrivate
+class QMediaObjectPrivate : public QObjectPrivate
{
Q_DECLARE_PUBLIC(QMediaObject)
public:
- QMediaObjectPrivate() : service(nullptr), metaDataControl(nullptr), availabilityControl(nullptr), notifyTimer(nullptr), q_ptr(nullptr) {}
+ QMediaObjectPrivate() : service(nullptr), metaDataControl(nullptr), availabilityControl(nullptr), notifyTimer(nullptr) {}
virtual ~QMediaObjectPrivate() {}
void _q_notify();
@@ -85,8 +86,6 @@ public:
QTimer* notifyTimer;
QSet<int> notifyProperties;
-
- QMediaObject *q_ptr;
};
QT_END_NAMESPACE