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


Reply via email to