diff options
author | VaL Doroshchuk <valentyn.doroshchuk@qt.io> | 2019-08-19 11:19:06 +0200 |
---|---|---|
committer | VaL Doroshchuk <valentyn.doroshchuk@qt.io> | 2019-08-23 14:37:10 +0200 |
commit | b62171062be100186a71d00610c15a0b07d07c72 (patch) | |
tree | a8c0be5f3035f734a46721bcc9171224c742d19e | |
parent | 0250b243d1d43d904622433bf632b249c21e7323 (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.cpp | 8 | ||||
-rw-r--r-- | src/multimedia/camera/qcamerafocus.h | 4 | ||||
-rw-r--r-- | src/multimedia/camera/qcameraimageprocessing.cpp | 8 | ||||
-rw-r--r-- | src/multimedia/camera/qcameraimageprocessing.h | 4 | ||||
-rw-r--r-- | src/multimedia/qmediaobject.cpp | 16 | ||||
-rw-r--r-- | src/multimedia/qmediaobject.h | 4 | ||||
-rw-r--r-- | src/multimedia/qmediaobject_p.h | 7 |
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 |