diff options
author | John Layt <john@layt.net> | 2010-02-16 01:13:13 (GMT) |
---|---|---|
committer | Trond Kjernåsen <trond@trolltech.com> | 2010-03-04 14:21:03 (GMT) |
commit | 4984b36c73fb59006a28051ea82bdca0b7aeb457 (patch) | |
tree | d4ef8c6f08866bd73c532ef20ae08a0a946b08bd /src/gui/dialogs/qprintdialog_qws.cpp | |
parent | c5264c89b7710dc2f2d8c7c604f0b23852cb2eef (diff) | |
download | Qt-4984b36c73fb59006a28051ea82bdca0b7aeb457.zip Qt-4984b36c73fb59006a28051ea82bdca0b7aeb457.tar.gz Qt-4984b36c73fb59006a28051ea82bdca0b7aeb457.tar.bz2 |
QPrinter: Add Current Page print range support
Support the selection of Current Page option in the print dialog by
activating a new QPrintDialog::PrintDialogOption. If selected the
PrintRange is set to CurrentPage.
It is the responsibility of the application to read the PrintRange and
apply the Current Page selection when rendering the pages.
Merge-request: 2311
Reviewed-by: Trond
Diffstat (limited to 'src/gui/dialogs/qprintdialog_qws.cpp')
-rw-r--r-- | src/gui/dialogs/qprintdialog_qws.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/gui/dialogs/qprintdialog_qws.cpp b/src/gui/dialogs/qprintdialog_qws.cpp index 1336c04..b071427 100644 --- a/src/gui/dialogs/qprintdialog_qws.cpp +++ b/src/gui/dialogs/qprintdialog_qws.cpp @@ -178,6 +178,10 @@ void QPrintDialogPrivate::_q_okClicked() q->setPrintRange(QPrintDialog::PageRange); q->setFromTo(firstPage->value(), lastPage->value()); break; + case (int)QPrintDialog::CurrentPage: + q->setPrintRange(QPrintDialog::CurrentPage); + q->setFromTo(0, 0); + break; } q->accept(); } @@ -375,6 +379,7 @@ void QPrintDialogPrivate::setupOptions() rangeCombo->addItem(QPrintDialog::tr("Print all"), QPrintDialog::AllPages); rangeCombo->addItem(QPrintDialog::tr("Print selection"), QPrintDialog::Selection); rangeCombo->addItem(QPrintDialog::tr("Print range"), QPrintDialog::PageRange); + rangeCombo->addItem(QPrintDialog::tr("Print current page"), QPrintDialog::CurrentPage); QObject::connect(rangeCombo, SIGNAL(activated(int)), q, SLOT(_q_printRangeSelected(int))); @@ -490,6 +495,9 @@ void QPrintDialogPrivate::setPrinter(QPrinter *p, bool pickUpSettings) if (!q->isOptionEnabled(QPrintDialog::PrintPageRange) && rangeCombo->findData(QPrintDialog::PageRange) > 0) rangeCombo->removeItem(rangeCombo->findData(QPrintDialog::PageRange)); + if (!q->isOptionEnabled(QPrintDialog::PrintCurrentPage) + && rangeCombo->findData(QPrintDialog::CurrentPage) > 0) + rangeCombo->removeItem(rangeCombo->findData(QPrintDialog::CurrentPage)); switch (q->printRange()) { case QPrintDialog::AllPages: @@ -501,6 +509,9 @@ void QPrintDialogPrivate::setPrinter(QPrinter *p, bool pickUpSettings) case QPrintDialog::PageRange: rangeCombo->setCurrentIndex((int)(QPrintDialog::PageRange)); break; + case QPrintDialog::CurrentPage: + rangeCombo->setCurrentIndex((int)(QPrintDialog::CurrentPage)); + break; } } |