diff options
author | John Layt <jlayt@kde.org> | 2014-03-28 10:58:25 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-04-05 21:47:46 +0200 |
commit | bc46b591b2cb81a5cb0c513aa4139b7e88fa8b06 (patch) | |
tree | f419a9eb6c623cd24d57f316edcaec1d4f6c5cd2 /src/gui/painting/qpagedpaintdevice.h | |
parent | d84da399649d01ac689e87295f8decc024a4f8e8 (diff) |
QPagedPaintDevice - Move QPageLayout methods
The new QPageLayout methods weren't originally added to QPagePaintDevice
as no new virtuals can be added, instead static polymorphism was used to
add the methods directly in the derived classes QPdfWriter and QPrinter.
This however means that classes like QTextDocument with print() methods
that take a QPagedPaintDevice are unable to access the QPageLayout
methods. To fix this, instead make the QPagedPaintDevicePrivate a
virtual class and have QPdfWriter and QPrinter implement derived
private classes that are called by the non-virtual QPagedPaintDevice
base methods.
Change-Id: Ieb6e513b1fa05f5ae76ea1f9156b0b1a053089eb
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Diffstat (limited to 'src/gui/painting/qpagedpaintdevice.h')
-rw-r--r-- | src/gui/painting/qpagedpaintdevice.h | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/gui/painting/qpagedpaintdevice.h b/src/gui/painting/qpagedpaintdevice.h index 6d4c422a95..dec56f9ce8 100644 --- a/src/gui/painting/qpagedpaintdevice.h +++ b/src/gui/painting/qpagedpaintdevice.h @@ -43,6 +43,7 @@ #define QPAGEDPAINTDEVICE_H #include <QtGui/qpaintdevice.h> +#include <QtGui/qpagelayout.h> QT_BEGIN_NAMESPACE @@ -51,7 +52,6 @@ QT_BEGIN_NAMESPACE #endif class QPagedPaintDevicePrivate; -class QPageLayout; class Q_GUI_EXPORT QPagedPaintDevice : public QPaintDevice { @@ -214,6 +214,14 @@ public: Envelope10 = Comm10E }; + // ### Qt6 Make these virtual + bool setPageLayout(const QPageLayout &pageLayout); + bool setPageSize(const QPageSize &pageSize); + bool setPageOrientation(QPageLayout::Orientation orientation); + bool setPageMargins(const QMarginsF &margins); + bool setPageMargins(const QMarginsF &margins, QPageLayout::Unit units); + QPageLayout pageLayout() const; + virtual void setPageSize(PageSize size); PageSize pageSize() const; @@ -232,6 +240,8 @@ public: Margins margins() const; protected: + QPagedPaintDevice(QPagedPaintDevicePrivate *dd); + QPagedPaintDevicePrivate *dd(); QPageLayout devicePageLayout() const; QPageLayout &devicePageLayout(); friend class QPagedPaintDevicePrivate; |