diff options
Diffstat (limited to 'src/printsupport/dialogs')
-rw-r--r-- | src/printsupport/dialogs/qabstractprintdialog.cpp | 22 | ||||
-rw-r--r-- | src/printsupport/dialogs/qabstractprintdialog_p.h | 5 |
2 files changed, 16 insertions, 11 deletions
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<QWidget *> &) {} void setPrinter(QPrinter *newPrinter); + int minPage; + int maxPage; }; #endif //QT_NO_PRINTER |