Hello community, here is the log from the commit of package libqt5-qtbase for openSUSE:Factory checked in at 2018-10-15 09:17:41 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libqt5-qtbase (Old) and /work/SRC/openSUSE:Factory/.libqt5-qtbase.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libqt5-qtbase" Mon Oct 15 09:17:41 2018 rev:89 rq:641330 version:5.11.2 Changes: -------- --- /work/SRC/openSUSE:Factory/libqt5-qtbase/libqt5-qtbase.changes 2018-10-01 08:13:44.506109565 +0200 +++ /work/SRC/openSUSE:Factory/.libqt5-qtbase.new/libqt5-qtbase.changes 2018-10-15 09:17:51.592797746 +0200 @@ -1,0 +2,6 @@ +Thu Sep 27 11:34:31 UTC 2018 - mischa.sa...@gmail.com + +- Add patch to fix boo#1096328, printer settings not remembered: + * 0001-Unix-print-dialog-Properly-initialize-duplex.patch + +------------------------------------------------------------------- New: ---- 0001-Unix-print-dialog-Properly-initialize-duplex.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libqt5-qtbase.spec ++++++ --- /var/tmp/diff_new_pack.HJ2w4k/_old 2018-10-15 09:17:55.628793944 +0200 +++ /var/tmp/diff_new_pack.HJ2w4k/_new 2018-10-15 09:17:55.632793940 +0200 @@ -74,6 +74,7 @@ Patch1000: Export-qt_open64-from-QtCore.patch Patch1001: 0001-xcb-Don-t-get-initial-screen-rotation.patch # patches 2000-3000 and above from upstream 5.12/dev branch # +Patch2000: 0001-Unix-print-dialog-Properly-initialize-duplex.patch BuildRequires: alsa-devel BuildRequires: cups-devel BuildRequires: double-conversion-devel ++++++ 0001-Unix-print-dialog-Properly-initialize-duplex.patch ++++++ >From 82f21f3d47cf4bb3be71bf2eda3f971b43acc76d Mon Sep 17 00:00:00 2001 From: Mischa Salle <mischa.sa...@gmail.com> Date: Thu, 27 Sep 2018 13:22:47 +0200 Subject: [PATCH] Unix print dialog: Properly initialize duplex This is a backport of https://codereview.qt-project.org/#/c/226881/ and fixes https://bugzilla.suse.com/show_bug.cgi?id=1096328 --- src/printsupport/dialogs/qprintdialog_unix.cpp | 32 ++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 5 deletions(-) diff --git a/src/printsupport/dialogs/qprintdialog_unix.cpp b/src/printsupport/dialogs/qprintdialog_unix.cpp index 86daea3b02..53d26bf9fc 100644 --- a/src/printsupport/dialogs/qprintdialog_unix.cpp +++ b/src/printsupport/dialogs/qprintdialog_unix.cpp @@ -240,6 +240,10 @@ public: QDialogButtonBox *buttons; QPushButton *collapseButton; QPrinter::OutputFormat printerOutputFormat; +private: + void setExplicitDuplexMode(QPrint::DuplexMode duplexMode); + // duplex mode explicitly set by user, QPrint::DuplexAuto otherwise + QPrint::DuplexMode explicitDuplexMode; }; #if QT_CONFIG(cups) @@ -479,7 +483,8 @@ void QPrintPropertiesDialog::accept() */ QPrintDialogPrivate::QPrintDialogPrivate() - : top(nullptr), bottom(nullptr), buttons(nullptr), collapseButton(nullptr) + : top(nullptr), bottom(nullptr), buttons(nullptr), collapseButton(nullptr), + explicitDuplexMode(QPrint::DuplexAuto) { initResources(); } @@ -540,6 +545,10 @@ void QPrintDialogPrivate::init() q, SLOT(_q_togglePageSetCombo(bool))); QObject::connect(collapseButton, SIGNAL(released()), q, SLOT(_q_collapseOrExpandDialog())); + + QObject::connect(options.noDuplex, &QAbstractButton::clicked, q, [this] { setExplicitDuplexMode(QPrint::DuplexNone); }); + QObject::connect(options.duplexLong, &QAbstractButton::clicked, q, [this] { setExplicitDuplexMode(QPrint::DuplexLongSide); }); + QObject::connect(options.duplexShort, &QAbstractButton::clicked, q, [this] { setExplicitDuplexMode(QPrint::DuplexShortSide); }); } // initialize printer options @@ -559,13 +568,21 @@ void QPrintDialogPrivate::selectPrinter(const QPrinter::OutputFormat outputForma else options.grayscale->setChecked(true); - switch (p->duplex()) { - case QPrinter::DuplexNone: + // keep duplex value explicitly set by user, if any, and selected printer supports it; + // use device default otherwise + QPrint::DuplexMode duplex; + if (explicitDuplexMode != QPrint::DuplexAuto && supportedDuplexMode.contains(explicitDuplexMode)) + duplex = explicitDuplexMode; + else + duplex = top->d->m_currentPrintDevice.defaultDuplexMode(); + + switch (duplex) { + case QPrint::DuplexNone: options.noDuplex->setChecked(true); break; - case QPrinter::DuplexLongSide: + case QPrint::DuplexLongSide: case QPrinter::DuplexAuto: options.duplexLong->setChecked(true); break; - case QPrinter::DuplexShortSide: + case QPrint::DuplexShortSide: options.duplexShort->setChecked(true); break; } options.copies->setValue(p->copyCount()); @@ -667,6 +684,11 @@ static bool isValidPagesString(const QString &pagesString) Q_DECL_NOTHROW } #endif +void QPrintDialogPrivate::setExplicitDuplexMode(const QPrint::DuplexMode duplexMode) +{ + explicitDuplexMode = duplexMode; +} + void QPrintDialogPrivate::setupPrinter() { // First setup the requested OutputFormat, Printer and Page Size first -- 2.16.4