Remove obsolete APIs and comments from QAbstractPrintDialog

Merging QAbstractPrintDialog with QPrintDialog, as proposed in the
removed comment, seems to have little value, given that the platform
specific implementations rely on the current abstraction.

Adjust examples and tests; with the QAbstractPrintDialog test now
testing the QPrintDialog::options API, the corresponding test function
can be removed from the QPrinter test.

Change-Id: Ia8906627898332e8590ea9b27e3d71dfcc6e8d71
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
This commit is contained in:
Volker Hilsheimer 2020-09-07 10:59:58 +02:00
parent 1b02cfd38d
commit 8186bd628f
8 changed files with 86 additions and 146 deletions

View File

@ -256,7 +256,7 @@ void MainWindow::printFile()
QPrintDialog dialog(&printer, this); QPrintDialog dialog(&printer, this);
dialog.setWindowTitle(tr("Print Document")); dialog.setWindowTitle(tr("Print Document"));
if (editor->textCursor().hasSelection()) if (editor->textCursor().hasSelection())
dialog.addEnabledOption(QAbstractPrintDialog::PrintSelection); dialog.setOption(QAbstractPrintDialog::PrintSelection);
if (dialog.exec() != QDialog::Accepted) { if (dialog.exec() != QDialog::Accepted) {
return; return;
} }

View File

@ -547,7 +547,7 @@ void TextEdit::filePrint()
QPrinter printer(QPrinter::HighResolution); QPrinter printer(QPrinter::HighResolution);
QPrintDialog *dlg = new QPrintDialog(&printer, this); QPrintDialog *dlg = new QPrintDialog(&printer, this);
if (textEdit->textCursor().hasSelection()) if (textEdit->textCursor().hasSelection())
dlg->addEnabledOption(QAbstractPrintDialog::PrintSelection); dlg->setOption(QAbstractPrintDialog::PrintSelection);
dlg->setWindowTitle(tr("Print Document")); dlg->setWindowTitle(tr("Print Document"));
if (dlg->exec() == QDialog::Accepted) if (dlg->exec() == QDialog::Accepted)
textEdit->print(&printer); textEdit->print(&printer);

View File

@ -78,20 +78,12 @@ QT_BEGIN_NAMESPACE
Used to specify which parts of the print dialog should be visible. Used to specify which parts of the print dialog should be visible.
\value None None of the options are enabled.
\value PrintToFile The print to file option is enabled. \value PrintToFile The print to file option is enabled.
\value PrintSelection The print selection option is enabled. \value PrintSelection The print selection option is enabled.
\value PrintPageRange The page range selection option is enabled. \value PrintPageRange The page range selection option is enabled.
\value PrintShowPageSize Show the page size + margins page only if this is enabled. \value PrintShowPageSize Show the page size + margins page only if this is enabled.
\value PrintCollateCopies The collate copies option is enabled \value PrintCollateCopies The collate copies option is enabled
\value PrintCurrentPage The print current page option is enabled \value PrintCurrentPage The print current page option is enabled
This value is obsolete and does nothing since Qt 4.5:
\value DontUseSheet In previous versions of Qt, exec() the print dialog
would create a sheet by default the dialog was given a parent.
This is no longer supported in Qt 4.5. If you want to use sheets, use
QPrintDialog::open() instead.
*/ */
/*! /*!
@ -187,50 +179,6 @@ QPrintDialog::PrintDialogOptions QPrintDialog::options() const
return d->options; return d->options;
} }
/*!
\obsolete
Use QPrintDialog::setOptions() instead.
*/
void QAbstractPrintDialog::setEnabledOptions(PrintDialogOptions options)
{
Q_D(QAbstractPrintDialog);
d->options = options;
}
/*!
\obsolete
Use QPrintDialog::setOption(\a option, true) instead.
*/
void QAbstractPrintDialog::addEnabledOption(PrintDialogOption option)
{
Q_D(QAbstractPrintDialog);
d->options |= option;
}
/*!
\obsolete
Use QPrintDialog::options() instead.
*/
QAbstractPrintDialog::PrintDialogOptions QAbstractPrintDialog::enabledOptions() const
{
Q_D(const QAbstractPrintDialog);
return d->options;
}
/*!
\obsolete
Use QPrintDialog::testOption(\a option) instead.
*/
bool QAbstractPrintDialog::isOptionEnabled(PrintDialogOption option) const
{
Q_D(const QAbstractPrintDialog);
return d->options & option;
}
/*! /*!
Sets the print range option in to be \a range. Sets the print range option in to be \a range.
*/ */

View File

@ -51,7 +51,6 @@ QT_BEGIN_NAMESPACE
class QAbstractPrintDialogPrivate; class QAbstractPrintDialogPrivate;
class QPrinter; class QPrinter;
// ### QtPrintNG: merge this class with QPrintDialog
class Q_PRINTSUPPORT_EXPORT QAbstractPrintDialog : public QDialog class Q_PRINTSUPPORT_EXPORT QAbstractPrintDialog : public QDialog
{ {
Q_DECLARE_PRIVATE(QAbstractPrintDialog) Q_DECLARE_PRIVATE(QAbstractPrintDialog)
@ -67,15 +66,11 @@ public:
}; };
enum PrintDialogOption { enum PrintDialogOption {
None = 0x0000, // obsolete
PrintToFile = 0x0001, PrintToFile = 0x0001,
PrintSelection = 0x0002, PrintSelection = 0x0002,
PrintPageRange = 0x0004, PrintPageRange = 0x0004,
PrintShowPageSize = 0x0008, PrintShowPageSize = 0x0008,
PrintCollateCopies = 0x0010, PrintCollateCopies = 0x0010,
#if QT_DEPRECATED_SINCE(5, 14)
DontUseSheet Q_DECL_ENUMERATOR_DEPRECATED = 0x0020,
#endif
PrintCurrentPage = 0x0040 PrintCurrentPage = 0x0040
}; };
Q_ENUM(PrintDialogOption) Q_ENUM(PrintDialogOption)
@ -86,12 +81,6 @@ public:
explicit QAbstractPrintDialog(QPrinter *printer, QWidget *parent = nullptr); explicit QAbstractPrintDialog(QPrinter *printer, QWidget *parent = nullptr);
~QAbstractPrintDialog(); ~QAbstractPrintDialog();
// obsolete
void addEnabledOption(PrintDialogOption option);
void setEnabledOptions(PrintDialogOptions options);
PrintDialogOptions enabledOptions() const;
bool isOptionEnabled(PrintDialogOption option) const;
void setOptionTabs(const QList<QWidget*> &tabs); void setOptionTabs(const QList<QWidget*> &tabs);
void setPrintRange(PrintRange range); void setPrintRange(PrintRange range);

View File

@ -209,7 +209,7 @@ public:
QUnixPrintWidget * const parent; QUnixPrintWidget * const parent;
QPrintPropertiesDialog *propertiesDialog; QPrintPropertiesDialog *propertiesDialog;
Ui::QPrintWidget widget; Ui::QPrintWidget widget;
QAbstractPrintDialog * q; QPrintDialog * q;
QPrinter *printer; QPrinter *printer;
QPrintDevice m_currentPrintDevice; QPrintDevice m_currentPrintDevice;
@ -805,7 +805,7 @@ void QPrintDialogPrivate::setupPrinter()
p->setPrintRange(QPrinter::CurrentPage); p->setPrintRange(QPrinter::CurrentPage);
p->setFromTo(0,0); p->setFromTo(0,0);
} else if (options.printRange->isChecked()) { } else if (options.printRange->isChecked()) {
if (q->isOptionEnabled(QPrintDialog::PrintPageRange)) { if (q->testOption(QPrintDialog::PrintPageRange)) {
p->setPrintRange(QPrinter::PageRange); p->setPrintRange(QPrinter::PageRange);
p->setFromTo(options.from->value(), qMax(options.from->value(), options.to->value())); p->setFromTo(options.from->value(), qMax(options.from->value(), options.to->value()));
} else { } else {
@ -829,7 +829,7 @@ void QPrintDialogPrivate::setupPrinter()
if (p->printRange() == QPrinter::AllPages || p->printRange() == QPrinter::PageRange) { if (p->printRange() == QPrinter::AllPages || p->printRange() == QPrinter::PageRange) {
//If the application is selecting pages and the first page number is even then need to adjust the odd-even accordingly //If the application is selecting pages and the first page number is even then need to adjust the odd-even accordingly
QCUPSSupport::PageSet pageSet = qvariant_cast<QCUPSSupport::PageSet>(options.pageSetCombo->itemData(options.pageSetCombo->currentIndex())); QCUPSSupport::PageSet pageSet = qvariant_cast<QCUPSSupport::PageSet>(options.pageSetCombo->itemData(options.pageSetCombo->currentIndex()));
if (q->isOptionEnabled(QPrintDialog::PrintPageRange) if (q->testOption(QPrintDialog::PrintPageRange)
&& p->printRange() == QPrinter::PageRange && p->printRange() == QPrinter::PageRange
&& (q->fromPage() % 2 == 0)) { && (q->fromPage() % 2 == 0)) {
@ -849,7 +849,7 @@ void QPrintDialogPrivate::setupPrinter()
// server-side page range, since we set the page range on the printer to 0-0/AllPages above, // server-side page range, since we set the page range on the printer to 0-0/AllPages above,
// we need to take the values directly from the widget as q->fromPage() will return 0 // we need to take the values directly from the widget as q->fromPage() will return 0
if (!q->isOptionEnabled(QPrintDialog::PrintPageRange) && options.printRange->isChecked()) if (!q->testOption(QPrintDialog::PrintPageRange) && options.printRange->isChecked())
QCUPSSupport::setPageRange(p, options.from->value(), qMax(options.from->value(), options.to->value())); QCUPSSupport::setPageRange(p, options.from->value(), qMax(options.from->value(), options.to->value()));
} }
#endif #endif
@ -898,19 +898,19 @@ void QPrintDialogPrivate::_q_checkFields()
void QPrintDialogPrivate::updateWidgets() void QPrintDialogPrivate::updateWidgets()
{ {
Q_Q(QPrintDialog); Q_Q(QPrintDialog);
options.gbPrintRange->setVisible(q->isOptionEnabled(QPrintDialog::PrintPageRange) || options.gbPrintRange->setVisible(q->testOption(QPrintDialog::PrintPageRange) ||
q->isOptionEnabled(QPrintDialog::PrintSelection) || q->testOption(QPrintDialog::PrintSelection) ||
q->isOptionEnabled(QPrintDialog::PrintCurrentPage)); q->testOption(QPrintDialog::PrintCurrentPage));
options.printRange->setEnabled(q->isOptionEnabled(QPrintDialog::PrintPageRange)); options.printRange->setEnabled(q->testOption(QPrintDialog::PrintPageRange));
options.printSelection->setVisible(q->isOptionEnabled(QPrintDialog::PrintSelection)); options.printSelection->setVisible(q->testOption(QPrintDialog::PrintSelection));
options.printCurrentPage->setVisible(q->isOptionEnabled(QPrintDialog::PrintCurrentPage)); options.printCurrentPage->setVisible(q->testOption(QPrintDialog::PrintCurrentPage));
options.collate->setVisible(q->isOptionEnabled(QPrintDialog::PrintCollateCopies)); options.collate->setVisible(q->testOption(QPrintDialog::PrintCollateCopies));
#if QT_CONFIG(cups) #if QT_CONFIG(cups)
// Don't display Page Set if only Selection or Current Page are enabled // Don't display Page Set if only Selection or Current Page are enabled
if (!q->isOptionEnabled(QPrintDialog::PrintPageRange) if (!q->testOption(QPrintDialog::PrintPageRange)
&& (q->isOptionEnabled(QPrintDialog::PrintSelection) || q->isOptionEnabled(QPrintDialog::PrintCurrentPage))) { && (q->testOption(QPrintDialog::PrintSelection) || q->testOption(QPrintDialog::PrintCurrentPage))) {
options.pageSetCombo->setVisible(false); options.pageSetCombo->setVisible(false);
options.pageSetLabel->setVisible(false); options.pageSetLabel->setVisible(false);
} else { } else {
@ -918,7 +918,7 @@ void QPrintDialogPrivate::updateWidgets()
options.pageSetLabel->setVisible(true); options.pageSetLabel->setVisible(true);
} }
if (!q->isOptionEnabled(QPrintDialog::PrintPageRange)) { if (!q->testOption(QPrintDialog::PrintPageRange)) {
// If we can do CUPS server side pages selection, // If we can do CUPS server side pages selection,
// display the page range widgets // display the page range widgets
options.gbPrintRange->setVisible(true); options.gbPrintRange->setVisible(true);
@ -940,7 +940,7 @@ void QPrintDialogPrivate::updateWidgets()
options.pageSetCombo->setEnabled(true); options.pageSetCombo->setEnabled(true);
break; break;
case QPrintDialog::CurrentPage: case QPrintDialog::CurrentPage:
if (q->isOptionEnabled(QPrintDialog::PrintCurrentPage)) { if (q->testOption(QPrintDialog::PrintCurrentPage)) {
options.printCurrentPage->setChecked(true); options.printCurrentPage->setChecked(true);
options.pageSetCombo->setEnabled(false); options.pageSetCombo->setEnabled(false);
} }
@ -1066,7 +1066,7 @@ QUnixPrintWidgetPrivate::QUnixPrintWidgetPrivate(QUnixPrintWidget *p, QPrinter *
{ {
q = nullptr; q = nullptr;
if (parent) if (parent)
q = qobject_cast<QAbstractPrintDialog*> (parent->parent()); q = qobject_cast<QPrintDialog*> (parent->parent());
widget.setupUi(parent); widget.setupUi(parent);
@ -1104,7 +1104,7 @@ QUnixPrintWidgetPrivate::QUnixPrintWidgetPrivate(QUnixPrintWidget *p, QPrinter *
void QUnixPrintWidgetPrivate::updateWidget() void QUnixPrintWidgetPrivate::updateWidget()
{ {
const bool printToFile = q == nullptr || q->isOptionEnabled(QPrintDialog::PrintToFile); const bool printToFile = q == nullptr || q->testOption(QPrintDialog::PrintToFile);
if (printToFile && !filePrintersAdded) { if (printToFile && !filePrintersAdded) {
if (widget.printers->count()) if (widget.printers->count())
widget.printers->insertSeparator(widget.printers->count()); widget.printers->insertSeparator(widget.printers->count());
@ -1131,7 +1131,7 @@ void QUnixPrintWidgetPrivate::updateWidget()
widget.lOutput->setVisible(printToFile); widget.lOutput->setVisible(printToFile);
widget.fileBrowser->setVisible(printToFile); widget.fileBrowser->setVisible(printToFile);
widget.properties->setVisible(q->isOptionEnabled(QAbstractPrintDialog::PrintShowPageSize)); widget.properties->setVisible(q->testOption(QAbstractPrintDialog::PrintShowPageSize));
} }
QUnixPrintWidgetPrivate::~QUnixPrintWidgetPrivate() QUnixPrintWidgetPrivate::~QUnixPrintWidgetPrivate()
@ -1278,7 +1278,7 @@ void QUnixPrintWidgetPrivate::setupPrinterProperties()
QPrinter::OutputFormat outputFormat; QPrinter::OutputFormat outputFormat;
QString printerName; QString printerName;
if (q->isOptionEnabled(QPrintDialog::PrintToFile) if (q->testOption(QPrintDialog::PrintToFile)
&& (widget.printers->currentIndex() == widget.printers->count() - 1)) {// PDF && (widget.printers->currentIndex() == widget.printers->count() - 1)) {// PDF
outputFormat = QPrinter::PdfFormat; outputFormat = QPrinter::PdfFormat;
} else { } else {

View File

@ -98,21 +98,21 @@ static void qt_win_setup_PRINTDLGEX(PRINTDLGEX *pd, QWidget *parent,
pd->Flags = PD_RETURNDC; pd->Flags = PD_RETURNDC;
pd->Flags |= PD_USEDEVMODECOPIESANDCOLLATE; pd->Flags |= PD_USEDEVMODECOPIESANDCOLLATE;
if (!pdlg->isOptionEnabled(QPrintDialog::PrintSelection)) if (!pdlg->testOption(QPrintDialog::PrintSelection))
pd->Flags |= PD_NOSELECTION; pd->Flags |= PD_NOSELECTION;
if (pdlg->isOptionEnabled(QPrintDialog::PrintPageRange)) { if (pdlg->testOption(QPrintDialog::PrintPageRange)) {
pd->nMinPage = pdlg->minPage(); pd->nMinPage = pdlg->minPage();
pd->nMaxPage = pdlg->maxPage(); pd->nMaxPage = pdlg->maxPage();
} }
if(!pdlg->isOptionEnabled(QPrintDialog::PrintToFile)) if (!pdlg->testOption(QPrintDialog::PrintToFile))
pd->Flags |= PD_DISABLEPRINTTOFILE; pd->Flags |= PD_DISABLEPRINTTOFILE;
if (pdlg->isOptionEnabled(QPrintDialog::PrintSelection) && pdlg->printRange() == QPrintDialog::Selection) if (pdlg->testOption(QPrintDialog::PrintSelection) && pdlg->printRange() == QPrintDialog::Selection)
pd->Flags |= PD_SELECTION; pd->Flags |= PD_SELECTION;
else if (pdlg->isOptionEnabled(QPrintDialog::PrintPageRange) && pdlg->printRange() == QPrintDialog::PageRange) else if (pdlg->testOption(QPrintDialog::PrintPageRange) && pdlg->printRange() == QPrintDialog::PageRange)
pd->Flags |= PD_PAGENUMS; pd->Flags |= PD_PAGENUMS;
else if (pdlg->isOptionEnabled(QPrintDialog::PrintCurrentPage) && pdlg->printRange() == QPrintDialog::CurrentPage) else if (pdlg->testOption(QPrintDialog::PrintCurrentPage) && pdlg->printRange() == QPrintDialog::CurrentPage)
pd->Flags |= PD_CURRENTPAGE; pd->Flags |= PD_CURRENTPAGE;
else else
pd->Flags |= PD_ALLPAGES; pd->Flags |= PD_ALLPAGES;
@ -123,7 +123,7 @@ static void qt_win_setup_PRINTDLGEX(PRINTDLGEX *pd, QWidget *parent,
pd->Flags |= PD_NOPAGENUMS; pd->Flags |= PD_NOPAGENUMS;
// Disable Current Page option if not required as default is Enabled // Disable Current Page option if not required as default is Enabled
if (!pdlg->isOptionEnabled(QPrintDialog::PrintCurrentPage)) if (!pdlg->testOption(QPrintDialog::PrintCurrentPage))
pd->Flags |= PD_NOCURRENTPAGE; pd->Flags |= PD_NOCURRENTPAGE;
// Default to showing the General tab first // Default to showing the General tab first

View File

@ -33,7 +33,7 @@
#include <qdebug.h> #include <qdebug.h>
#include <QtPrintSupport/qtprintsupportglobal.h> #include <QtPrintSupport/qtprintsupportglobal.h>
#if QT_CONFIG(printdialog) #if QT_CONFIG(printdialog)
#include <qabstractprintdialog.h> #include <qprintdialog.h>
#include <qprinter.h> #include <qprinter.h>
#endif #endif
@ -60,31 +60,63 @@ void tst_QAbstractPrintDialog::initTestCase()
#else #else
class MyAbstractPrintDialog : public QAbstractPrintDialog class MyPrintDialog : public QPrintDialog
{ {
public: public:
MyAbstractPrintDialog(QPrinter *p) : QAbstractPrintDialog(p) {} MyPrintDialog(QPrinter *p)
: QPrintDialog(p)
{
}
int exec() { return 0; } int exec() { return 0; }
void resetAllOptions()
{
setOption(QAbstractPrintDialog::PrintToFile, false);
setOption(QAbstractPrintDialog::PrintSelection, false);
setOption(QAbstractPrintDialog::PrintPageRange, false);
setOption(QAbstractPrintDialog::PrintShowPageSize, false);
setOption(QAbstractPrintDialog::PrintCollateCopies, false);
setOption(QAbstractPrintDialog::PrintCurrentPage, false);
}
}; };
// Testing get/set functions // Testing get/set functions
void tst_QAbstractPrintDialog::getSetCheck() void tst_QAbstractPrintDialog::getSetCheck()
{ {
QPrinter printer; QPrinter printer;
MyAbstractPrintDialog obj1(&printer); MyPrintDialog obj1(&printer);
QCOMPARE(obj1.printer(), &printer); QCOMPARE(obj1.printer(), &printer);
// PrintDialogOptions QAbstractPrintDialog::enabledOptions()
// void QAbstractPrintDialog::setEnabledOptions(PrintDialogOptions) // QPrintDialog::options APIs
obj1.setEnabledOptions(QAbstractPrintDialog::PrintDialogOptions(QAbstractPrintDialog::None)); QCOMPARE(obj1.options(), QAbstractPrintDialog::PrintToFile
QCOMPARE(QAbstractPrintDialog::PrintDialogOptions(QAbstractPrintDialog::None), obj1.enabledOptions()); |QAbstractPrintDialog::PrintPageRange
obj1.setEnabledOptions(QAbstractPrintDialog::PrintDialogOptions(QAbstractPrintDialog::PrintToFile)); |QAbstractPrintDialog::PrintShowPageSize
QCOMPARE(QAbstractPrintDialog::PrintDialogOptions(QAbstractPrintDialog::PrintToFile), obj1.enabledOptions()); |QAbstractPrintDialog::PrintCollateCopies);
obj1.setEnabledOptions(QAbstractPrintDialog::PrintDialogOptions(QAbstractPrintDialog::PrintSelection)); obj1.setOptions(QAbstractPrintDialog::PrintSelection
QCOMPARE(QAbstractPrintDialog::PrintDialogOptions(QAbstractPrintDialog::PrintSelection), obj1.enabledOptions()); |QAbstractPrintDialog::PrintCurrentPage);
obj1.setEnabledOptions(QAbstractPrintDialog::PrintDialogOptions(QAbstractPrintDialog::PrintPageRange)); QCOMPARE(obj1.options(), QAbstractPrintDialog::PrintSelection
QCOMPARE(QAbstractPrintDialog::PrintDialogOptions(QAbstractPrintDialog::PrintPageRange), obj1.enabledOptions()); |QAbstractPrintDialog::PrintCurrentPage);
obj1.setEnabledOptions(QAbstractPrintDialog::PrintDialogOptions(QAbstractPrintDialog::PrintCollateCopies)); obj1.resetAllOptions();
QCOMPARE(QAbstractPrintDialog::PrintDialogOptions(QAbstractPrintDialog::PrintCollateCopies), obj1.enabledOptions()); QCOMPARE(obj1.options(), QAbstractPrintDialog::PrintDialogOptions());
obj1.setOption(QAbstractPrintDialog::PrintToFile);
QVERIFY(obj1.testOption(QAbstractPrintDialog::PrintToFile));
QCOMPARE(obj1.options(), QAbstractPrintDialog::PrintToFile);
obj1.setOption(QAbstractPrintDialog::PrintSelection);
QVERIFY(obj1.testOption(QAbstractPrintDialog::PrintSelection));
QCOMPARE(obj1.options(), QAbstractPrintDialog::PrintToFile
|QAbstractPrintDialog::PrintSelection);
obj1.setOption(QAbstractPrintDialog::PrintPageRange);
QVERIFY(obj1.testOption(QAbstractPrintDialog::PrintPageRange));
QCOMPARE(obj1.options(), QAbstractPrintDialog::PrintToFile
|QAbstractPrintDialog::PrintSelection
|QAbstractPrintDialog::PrintPageRange);
obj1.setOption(QAbstractPrintDialog::PrintCollateCopies);
QVERIFY(obj1.testOption(QAbstractPrintDialog::PrintCollateCopies));
QCOMPARE(obj1.options(), QAbstractPrintDialog::PrintToFile
|QAbstractPrintDialog::PrintSelection
|QAbstractPrintDialog::PrintPageRange
|QAbstractPrintDialog::PrintCollateCopies);
// PrintRange QAbstractPrintDialog::printRange() // PrintRange QAbstractPrintDialog::printRange()
// void QAbstractPrintDialog::setPrintRange(PrintRange) // void QAbstractPrintDialog::setPrintRange(PrintRange)
@ -99,22 +131,23 @@ void tst_QAbstractPrintDialog::getSetCheck()
void tst_QAbstractPrintDialog::setMinMax() void tst_QAbstractPrintDialog::setMinMax()
{ {
QPrinter printer; QPrinter printer;
MyAbstractPrintDialog obj1(&printer); MyPrintDialog obj1(&printer);
obj1.setEnabledOptions(QAbstractPrintDialog::PrintDialogOptions(QAbstractPrintDialog::None)); obj1.resetAllOptions();
QCOMPARE(obj1.minPage(), 0); QCOMPARE(obj1.minPage(), 0);
QCOMPARE(obj1.maxPage(), INT_MAX); QCOMPARE(obj1.maxPage(), INT_MAX);
QVERIFY(!obj1.isOptionEnabled(QAbstractPrintDialog::PrintPageRange)); QVERIFY(!obj1.testOption(QAbstractPrintDialog::PrintPageRange));
obj1.setMinMax(2,5); obj1.setMinMax(2,5);
QCOMPARE(obj1.minPage(), 2); QCOMPARE(obj1.minPage(), 2);
QCOMPARE(obj1.maxPage(), 5); QCOMPARE(obj1.maxPage(), 5);
QVERIFY(obj1.enabledOptions() & QAbstractPrintDialog::PrintPageRange); QVERIFY(obj1.options() & QAbstractPrintDialog::PrintPageRange);
QVERIFY(obj1.isOptionEnabled(QAbstractPrintDialog::PrintPageRange)); QVERIFY(obj1.testOption(QAbstractPrintDialog::PrintPageRange));
} }
void tst_QAbstractPrintDialog::setFromTo() void tst_QAbstractPrintDialog::setFromTo()
{ {
QPrinter printer; QPrinter printer;
MyAbstractPrintDialog obj1(&printer); MyPrintDialog obj1(&printer);
QCOMPARE(obj1.fromPage(), 0); QCOMPARE(obj1.fromPage(), 0);
QCOMPARE(obj1.toPage(), 0); QCOMPARE(obj1.toPage(), 0);
obj1.setMinMax(0,0); obj1.setMinMax(0,0);

View File

@ -65,7 +65,6 @@ private slots:
#if QT_CONFIG(printer) #if QT_CONFIG(printer)
void testPageRectAndPaperRect(); void testPageRectAndPaperRect();
void testPageRectAndPaperRect_data(); void testPageRectAndPaperRect_data();
void testSetOptions();
void testMargins_data(); void testMargins_data();
void testMargins(); void testMargins();
void testPageSetupDialog(); void testPageSetupDialog();
@ -135,8 +134,6 @@ void tst_QPrinter::initTestCase()
#if QT_CONFIG(printer) #if QT_CONFIG(printer)
#define MYCOMPARE(a, b) QCOMPARE(QVariant((int)a), QVariant((int)b))
void tst_QPrinter::testPageSetupDialog() void tst_QPrinter::testPageSetupDialog()
{ {
// Make sure this doesn't crash at least // Make sure this doesn't crash at least
@ -259,33 +256,6 @@ void tst_QPrinter::testPageRectAndPaperRect()
QVERIFY(printer->pageLayout().orientation() != QPageLayout::Portrait || pageRect.width() < pageRect.height()); QVERIFY(printer->pageLayout().orientation() != QPageLayout::Portrait || pageRect.width() < pageRect.height());
} }
void tst_QPrinter::testSetOptions()
{
QPrinter prn;
QPrintDialog dlg(&prn);
// Verify default values
MYCOMPARE(dlg.isOptionEnabled(QAbstractPrintDialog::PrintToFile), true);
MYCOMPARE(dlg.isOptionEnabled(QAbstractPrintDialog::PrintSelection), false);
MYCOMPARE(dlg.isOptionEnabled(QAbstractPrintDialog::PrintPageRange), true);
dlg.setEnabledOptions(QAbstractPrintDialog::PrintPageRange);
MYCOMPARE(dlg.isOptionEnabled(QAbstractPrintDialog::PrintToFile), false);
MYCOMPARE(dlg.isOptionEnabled(QAbstractPrintDialog::PrintSelection), false);
MYCOMPARE(dlg.isOptionEnabled(QAbstractPrintDialog::PrintPageRange), true);
dlg.setEnabledOptions((QAbstractPrintDialog::PrintDialogOptions(QAbstractPrintDialog::PrintSelection
| QAbstractPrintDialog::PrintPageRange)));
MYCOMPARE(dlg.isOptionEnabled(QAbstractPrintDialog::PrintToFile), false);
MYCOMPARE(dlg.isOptionEnabled(QAbstractPrintDialog::PrintSelection), true);
MYCOMPARE(dlg.isOptionEnabled(QAbstractPrintDialog::PrintPageRange), true);
dlg.setEnabledOptions(QAbstractPrintDialog::PrintSelection);
MYCOMPARE(dlg.isOptionEnabled(QAbstractPrintDialog::PrintToFile), false);
MYCOMPARE(dlg.isOptionEnabled(QAbstractPrintDialog::PrintSelection), true);
MYCOMPARE(dlg.isOptionEnabled(QAbstractPrintDialog::PrintPageRange), false);
}
void tst_QPrinter::testMargins_data() void tst_QPrinter::testMargins_data()
{ {
QTest::addColumn<PrinterPtr>("printer"); QTest::addColumn<PrinterPtr>("printer");
@ -556,7 +526,7 @@ void tst_QPrinter::printDialogCompleter()
if (dialog.printer()->outputFormat() != QPrinter::NativeFormat) if (dialog.printer()->outputFormat() != QPrinter::NativeFormat)
QSKIP("Dialog cannot be used with non-native formats"); QSKIP("Dialog cannot be used with non-native formats");
#endif #endif
dialog.setEnabledOptions(QAbstractPrintDialog::PrintToFile); dialog.setOption(QAbstractPrintDialog::PrintToFile);
dialog.show(); dialog.show();
QVERIFY(QTest::qWaitForWindowActive(&dialog)); QVERIFY(QTest::qWaitForWindowActive(&dialog));
@ -625,11 +595,11 @@ void tst_QPrinter::testCurrentPage()
QPrintDialog dialog(&printer); QPrintDialog dialog(&printer);
// Test default Current Page option to off // Test default Current Page option to off
QCOMPARE(dialog.isOptionEnabled(QPrintDialog::PrintCurrentPage), false); QVERIFY(!dialog.testOption(QPrintDialog::PrintCurrentPage));
// Test enable Current Page option // Test enable Current Page option
dialog.setOption(QPrintDialog::PrintCurrentPage); dialog.setOption(QPrintDialog::PrintCurrentPage);
QCOMPARE(dialog.isOptionEnabled(QPrintDialog::PrintCurrentPage), true); QVERIFY(dialog.testOption(QPrintDialog::PrintCurrentPage));
} }