summaryrefslogtreecommitdiffstats
path: root/src/printsupport/dialogs
diff options
context:
space:
mode:
authorRenato Araujo Oliveira Filho <renato.araujo@kdab.com>2017-12-20 16:51:37 -0300
committerAlbert Astals Cid <albert.astals.cid@kdab.com>2018-01-09 15:42:17 +0000
commitf6fd3f18d301cde311420bfffeb027b40e33dafb (patch)
tree93c0dd23f88d17160dc2c8dada70e52bc6e79321 /src/printsupport/dialogs
parentca4a76350a288589d7caf54548ee08f9d4ab46c1 (diff)
Validate printer duplex mode
Disable unavailable duplex options Remove redundant option on advanced tab Change-Id: Ie09c9ffd637b521210e3d7d4f15300792f910996 Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
Diffstat (limited to 'src/printsupport/dialogs')
-rw-r--r--src/printsupport/dialogs/qprintdialog_unix.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/printsupport/dialogs/qprintdialog_unix.cpp b/src/printsupport/dialogs/qprintdialog_unix.cpp
index 02d69030ba..d66a7f4be7 100644
--- a/src/printsupport/dialogs/qprintdialog_unix.cpp
+++ b/src/printsupport/dialogs/qprintdialog_unix.cpp
@@ -520,6 +520,11 @@ void QPrintDialogPrivate::selectPrinter(const QPrinter::OutputFormat outputForma
QPrinter *p = q->printer();
printerOutputFormat = outputFormat;
+ // printer supports duplex mode?
+ const auto supportedDuplexMode = top->d->m_currentPrintDevice.supportedDuplexModes();
+ options.duplexLong->setEnabled(supportedDuplexMode.contains(QPrint::DuplexLongSide));
+ options.duplexShort->setEnabled(supportedDuplexMode.contains(QPrint::DuplexShortSide));
+
if (p->colorMode() == QPrinter::Color)
options.color->setChecked(true);
else
@@ -1319,7 +1324,8 @@ static bool isBlacklistedOption(const char *keyword) Q_DECL_NOTHROW
"Copies",
"OutputOrder",
"PageRegion",
- "PageSize"
+ "PageSize",
+ "Duplex" // handled by the main dialog
};
auto equals = [](const char *keyword) {
return [keyword](const char *candidate) {