From 28f1c1b9ef10fc3a49a64a535c7747a009939453 Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Thu, 18 Aug 2011 11:04:06 +0200 Subject: Restore feature compatibility with QPrinter in QTextDocument::print Add a margin method to QPagedPaintDevice. The other variables required are stored in QPagedPaintDevicePrivate without a public API for now. This needs cleaning up once we have a new printing system. Change-Id: Id3f2d7ac7f3cbce8619072a897d91f3a588add64 Reviewed-on: http://codereview.qt.nokia.com/3211 Reviewed-by: Qt Sanity Bot Reviewed-by: Gunnar Sletta --- src/printsupport/dialogs/qabstractprintdialog.cpp | 22 ++++++++++++---------- src/printsupport/dialogs/qabstractprintdialog_p.h | 5 ++++- 2 files changed, 16 insertions(+), 11 deletions(-) (limited to 'src/printsupport/dialogs') diff --git a/src/printsupport/dialogs/qabstractprintdialog.cpp b/src/printsupport/dialogs/qabstractprintdialog.cpp index ff572dd9f3..73b9c4f14e 100644 --- a/src/printsupport/dialogs/qabstractprintdialog.cpp +++ b/src/printsupport/dialogs/qabstractprintdialog.cpp @@ -115,6 +115,9 @@ QAbstractPrintDialog::QAbstractPrintDialog(QPrinter *printer, QWidget *parent) Q_D(QAbstractPrintDialog); setWindowTitle(QCoreApplication::translate("QPrintDialog", "Print")); d->setPrinter(printer); + d->minPage = printer->fromPage(); + int to = printer->toPage(); + d->maxPage = to > 0 ? to : INT_MAX; } /*! @@ -245,7 +248,7 @@ bool QAbstractPrintDialog::isOptionEnabled(PrintDialogOption option) const void QAbstractPrintDialog::setPrintRange(PrintRange range) { Q_D(QAbstractPrintDialog); - d->pd->printRange = QPrinter::PrintRange(range); + d->printer->setPrintRange(QPrinter::PrintRange(range)); } /*! @@ -266,8 +269,8 @@ void QAbstractPrintDialog::setMinMax(int min, int max) Q_D(QAbstractPrintDialog); Q_ASSERT_X(min <= max, "QAbstractPrintDialog::setMinMax", "'min' must be less than or equal to 'max'"); - d->pd->minPage = min; - d->pd->maxPage = max; + d->minPage = min; + d->maxPage = max; d->options |= PrintPageRange; } @@ -278,7 +281,7 @@ void QAbstractPrintDialog::setMinMax(int min, int max) int QAbstractPrintDialog::minPage() const { Q_D(const QAbstractPrintDialog); - return d->pd->minPage; + return d->minPage; } /*! @@ -289,7 +292,7 @@ int QAbstractPrintDialog::minPage() const int QAbstractPrintDialog::maxPage() const { Q_D(const QAbstractPrintDialog); - return d->pd->maxPage; + return d->maxPage; } /*! @@ -300,10 +303,9 @@ void QAbstractPrintDialog::setFromTo(int from, int to) Q_D(QAbstractPrintDialog); Q_ASSERT_X(from <= to, "QAbstractPrintDialog::setFromTo", "'from' must be less than or equal to 'to'"); - d->pd->fromPage = from; - d->pd->toPage = to; + d->printer->setFromTo(from, to); - if (d->pd->minPage == 0 && d->pd->maxPage == 0) + if (d->minPage == 0 && d->maxPage == 0) setMinMax(1, to); } @@ -314,7 +316,7 @@ void QAbstractPrintDialog::setFromTo(int from, int to) int QAbstractPrintDialog::fromPage() const { Q_D(const QAbstractPrintDialog); - return d->pd->fromPage; + return d->printer->fromPage(); } /*! @@ -324,7 +326,7 @@ int QAbstractPrintDialog::fromPage() const int QAbstractPrintDialog::toPage() const { Q_D(const QAbstractPrintDialog); - return d->pd->toPage; + return d->printer->toPage(); } diff --git a/src/printsupport/dialogs/qabstractprintdialog_p.h b/src/printsupport/dialogs/qabstractprintdialog_p.h index 45dd7e1e6a..e329cb3169 100644 --- a/src/printsupport/dialogs/qabstractprintdialog_p.h +++ b/src/printsupport/dialogs/qabstractprintdialog_p.h @@ -74,7 +74,8 @@ public: QAbstractPrintDialogPrivate() : printer(0), pd(0), ownsPrinter(false) , options(QAbstractPrintDialog::PrintToFile | QAbstractPrintDialog::PrintPageRange | - QAbstractPrintDialog::PrintCollateCopies | QAbstractPrintDialog::PrintShowPageSize) + QAbstractPrintDialog::PrintCollateCopies | QAbstractPrintDialog::PrintShowPageSize), + minPage(0), maxPage(INT_MAX) { } @@ -88,6 +89,8 @@ public: virtual void setTabs(const QList &) {} void setPrinter(QPrinter *newPrinter); + int minPage; + int maxPage; }; #endif //QT_NO_PRINTER -- cgit v1.2.3