forked from pool/libqt5-qtbase
Accepting request 641330 from KDE:Qt5
- Add patch to fix boo#1096328, printer settings not remembered: * 0001-Unix-print-dialog-Properly-initialize-duplex.patch OBS-URL: https://build.opensuse.org/request/show/641330 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libqt5-qtbase?expand=0&rev=89
This commit is contained in:
parent
d9567c040d
commit
a9a0afee32
88
0001-Unix-print-dialog-Properly-initialize-duplex.patch
Normal file
88
0001-Unix-print-dialog-Properly-initialize-duplex.patch
Normal file
@ -0,0 +1,88 @@
|
||||
From 82f21f3d47cf4bb3be71bf2eda3f971b43acc76d Mon Sep 17 00:00:00 2001
|
||||
From: Mischa Salle <mischa.salle@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
|
||||
|
@ -1,3 +1,9 @@
|
||||
-------------------------------------------------------------------
|
||||
Thu Sep 27 11:34:31 UTC 2018 - mischa.salle@gmail.com
|
||||
|
||||
- Add patch to fix boo#1096328, printer settings not remembered:
|
||||
* 0001-Unix-print-dialog-Properly-initialize-duplex.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Sep 26 14:16:33 UTC 2018 - fabian@ritter-vogt.de
|
||||
|
||||
|
@ -74,6 +74,7 @@ Patch19: qapplication-emit-palettechanged.patch
|
||||
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
|
||||
|
Loading…
Reference in New Issue
Block a user