File 0006-Remove-QPageSetupWidget-selectPrinter.patch of Package libqt5-qtbase
From ceccdff4e9fc93819d819b8ed15d95822f980505 Mon Sep 17 00:00:00 2001
From: Albert Astals Cid <albert.astals.cid@kdab.com>
Date: Mon, 4 Dec 2017 13:10:17 +0100
Subject: [PATCH 07/54] Remove QPageSetupWidget::selectPrinter
t's only ever called after setPrinter so merge the code
Change-Id: I4b5d593edbe62b64354e81c19112fa87b0555fdc
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
---
src/printsupport/dialogs/qpagesetupdialog_unix.cpp | 12 ++----------
src/printsupport/dialogs/qpagesetupdialog_unix_p.h | 3 +--
src/printsupport/dialogs/qprintdialog_unix.cpp | 3 +--
3 files changed, 4 insertions(+), 14 deletions(-)
Index: qtbase-opensource-src-5.6.2/src/printsupport/dialogs/qpagesetupdialog_unix.cpp
===================================================================
--- qtbase-opensource-src-5.6.2.orig/src/printsupport/dialogs/qpagesetupdialog_unix.cpp
+++ qtbase-opensource-src-5.6.2/src/printsupport/dialogs/qpagesetupdialog_unix.cpp
@@ -203,7 +203,7 @@ void QUnixPageSetupDialogPrivate::init()
Q_Q(QPageSetupDialog);
widget = new QPageSetupWidget(q);
- widget->setPrinter(printer);
+ widget->setPrinter(printer, printer->outputFormat(), printer->printerName());
QDialogButtonBox *buttons = new QDialogButtonBox(QDialogButtonBox::Ok
| QDialogButtonBox::Cancel,
@@ -365,6 +365,25 @@ void QPageSetupWidget::initPageSizes()
// Set the dialog to use the given QPrinter
// Usually only called on first creation
+void QPageSetupWidget::setPrinter(QPrinter *printer, QPrinter::OutputFormat outputFormat, const QString &printerName)
+{
+ m_printer = printer;
+
+ // Initialize the layout to the current QPrinter layout
+ m_pageLayout = m_printer->pageLayout();
+ // Assume if margins are Points then is by default, so set to locale default units
+ if (m_pageLayout.units() == QPageLayout::Point) {
+ if (QLocale().measurementSystem() == QLocale::MetricSystem)
+ m_pageLayout.setUnits(QPageLayout::Millimeter);
+ else
+ m_pageLayout.setUnits(QPageLayout::Inch);
+ }
+ m_units = m_pageLayout.units();
+ m_pagePreview->setPageLayout(m_pageLayout);
+
+ selectPrinter(outputFormat, printerName);
+}
+
void QPageSetupWidget::setPrinter(QPrinter *printer)
{
m_printer = printer;
@@ -389,6 +408,7 @@ void QPageSetupWidget::setPrinter(QPrint
// Note the QPrinter is not updated at this time in case the user presses the Cancel button in QPrintDialog
void QPageSetupWidget::selectPrinter(QPrinter::OutputFormat outputFormat, const QString &printerName)
{
+
m_outputFormat = outputFormat;
m_printerName = printerName;
initPageSizes();
Index: qtbase-opensource-src-5.6.2/src/printsupport/dialogs/qpagesetupdialog_unix_p.h
===================================================================
--- qtbase-opensource-src-5.6.2.orig/src/printsupport/dialogs/qpagesetupdialog_unix_p.h
+++ qtbase-opensource-src-5.6.2/src/printsupport/dialogs/qpagesetupdialog_unix_p.h
@@ -67,6 +67,7 @@ public:
explicit QPageSetupWidget(QPrinter *printer, QWidget *parent = 0);
void setPrinter(QPrinter *printer);
+ void setPrinter(QPrinter *printer, QPrinter::OutputFormat outputFormat, const QString &printerName);
void selectPrinter(QPrinter::OutputFormat outputFormat, const QString &printerName);
void setupPrinter() const;
Index: qtbase-opensource-src-5.6.2/src/printsupport/dialogs/qprintdialog_unix.cpp
===================================================================
--- qtbase-opensource-src-5.6.2.orig/src/printsupport/dialogs/qprintdialog_unix.cpp
+++ qtbase-opensource-src-5.6.2/src/printsupport/dialogs/qprintdialog_unix.cpp
@@ -234,8 +234,7 @@ QPrintPropertiesDialog::QPrintProperties
connect(m_buttons->button(QDialogButtonBox::Ok), SIGNAL(clicked()), this, SLOT(accept()));
connect(m_buttons->button(QDialogButtonBox::Cancel), SIGNAL(clicked()), this, SLOT(reject()));
- widget.pageSetup->setPrinter(printer);
- widget.pageSetup->selectPrinter(outputFormat, printerName);
+ widget.pageSetup->setPrinter(printer, outputFormat, printerName);
#ifndef QT_NO_CUPS
m_jobOptions = new QCupsJobWidget(printer);