summaryrefslogtreecommitdiffstats
path: root/src/printsupport/kernel
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@theqtcompany.com>2015-04-22 13:50:21 +0200
committerFriedemann Kleint <Friedemann.Kleint@theqtcompany.com>2015-05-05 14:06:27 +0000
commita6bcdf151647ab7a97c9fe1d2c8c8dd2b718244e (patch)
treec9d2194926ea28e83a18c61ebab3b3d1e75e8932 /src/printsupport/kernel
parent7c6b6876aa8841a56a6571c6a039c67a5d649bdb (diff)
Clean up API of QPlatformPrintDevice (QPA).
The class inherited QSharedData, had a non-virtual clone() function and a non-virtual operator==() which compared QPlatformPrintDevice::id(). Derived classes implemented clone() and operator==() comparing ids to no effect. The class does not have any setters modifying its values, so detaching, copying and assigning does not make sense. Remove the inheritance, clone(), and operator==() and make the class a non-copyable base class. Use a QSharedPointer instead of a QSharedDataPointer to store it in QPrintDevice. Remove copy constructors and clone() reimplementations that were never called in implementations. Found while investigating QTBUG-44991. Task-number: QTBUG-44991 Change-Id: Ib79354b37048d04d50d936f1d0ae06c36efaac00 Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com> Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
Diffstat (limited to 'src/printsupport/kernel')
-rw-r--r--src/printsupport/kernel/qplatformprintdevice.cpp5
-rw-r--r--src/printsupport/kernel/qplatformprintdevice.h7
-rw-r--r--src/printsupport/kernel/qprintdevice.cpp2
-rw-r--r--src/printsupport/kernel/qprintdevice_p.h2
4 files changed, 4 insertions, 12 deletions
diff --git a/src/printsupport/kernel/qplatformprintdevice.cpp b/src/printsupport/kernel/qplatformprintdevice.cpp
index bd6d81774c..6385f58aa1 100644
--- a/src/printsupport/kernel/qplatformprintdevice.cpp
+++ b/src/printsupport/kernel/qplatformprintdevice.cpp
@@ -75,11 +75,6 @@ QPlatformPrintDevice::~QPlatformPrintDevice()
{
}
-bool QPlatformPrintDevice::operator==(const QPlatformPrintDevice &other) const
-{
- return m_id == other.m_id;
-}
-
QString QPlatformPrintDevice::id() const
{
return m_id;
diff --git a/src/printsupport/kernel/qplatformprintdevice.h b/src/printsupport/kernel/qplatformprintdevice.h
index 1e21e608ad..8bb87a70f9 100644
--- a/src/printsupport/kernel/qplatformprintdevice.h
+++ b/src/printsupport/kernel/qplatformprintdevice.h
@@ -55,17 +55,14 @@ QT_BEGIN_NAMESPACE
#ifndef QT_NO_PRINTER
-class Q_PRINTSUPPORT_EXPORT QPlatformPrintDevice : public QSharedData
+class Q_PRINTSUPPORT_EXPORT QPlatformPrintDevice
{
+ Q_DISABLE_COPY(QPlatformPrintDevice)
public:
QPlatformPrintDevice();
explicit QPlatformPrintDevice(const QString &id);
virtual ~QPlatformPrintDevice();
- QPlatformPrintDevice *clone();
-
- bool operator==(const QPlatformPrintDevice &other) const;
-
virtual QString id() const;
virtual QString name() const;
virtual QString location() const;
diff --git a/src/printsupport/kernel/qprintdevice.cpp b/src/printsupport/kernel/qprintdevice.cpp
index 7c18b53e09..a640c14483 100644
--- a/src/printsupport/kernel/qprintdevice.cpp
+++ b/src/printsupport/kernel/qprintdevice.cpp
@@ -73,7 +73,7 @@ QPrintDevice &QPrintDevice::operator=(const QPrintDevice &other)
bool QPrintDevice::operator==(const QPrintDevice &other) const
{
if (d && other.d)
- return *d == *other.d;
+ return d->id() == other.d->id();
return d == other.d;
}
diff --git a/src/printsupport/kernel/qprintdevice_p.h b/src/printsupport/kernel/qprintdevice_p.h
index ad55cded0e..ddf5595734 100644
--- a/src/printsupport/kernel/qprintdevice_p.h
+++ b/src/printsupport/kernel/qprintdevice_p.h
@@ -136,7 +136,7 @@ private:
friend class QPlatformPrinterSupport;
friend class QPlatformPrintDevice;
QPrintDevice(QPlatformPrintDevice *dd);
- QSharedDataPointer<QPlatformPrintDevice> d;
+ QSharedPointer<QPlatformPrintDevice> d;
};
Q_DECLARE_SHARED(QPrintDevice)