diff options
Diffstat (limited to 'src/printsupport/dialogs/qpagesetupdialog_unix.cpp')
-rw-r--r-- | src/printsupport/dialogs/qpagesetupdialog_unix.cpp | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/src/printsupport/dialogs/qpagesetupdialog_unix.cpp b/src/printsupport/dialogs/qpagesetupdialog_unix.cpp index ee7bc62491..fcf7c8dddc 100644 --- a/src/printsupport/dialogs/qpagesetupdialog_unix.cpp +++ b/src/printsupport/dialogs/qpagesetupdialog_unix.cpp @@ -117,7 +117,7 @@ public: } protected: - void paintEvent(QPaintEvent *) Q_DECL_OVERRIDE + void paintEvent(QPaintEvent *) override { QSize pageSize = m_pageLayout.fullRectPoints().size(); QSizeF scaledSize = pageSize.scaled(width() - 10, height() - 10, Qt::KeepAspectRatio); @@ -210,7 +210,7 @@ void QUnixPageSetupDialogPrivate::init() Q_Q(QPageSetupDialog); widget = new QPageSetupWidget(q); - widget->setPrinter(printer); + widget->setPrinter(printer, nullptr, printer->outputFormat(), printer->printerName()); QDialogButtonBox *buttons = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, @@ -371,12 +371,17 @@ void QPageSetupWidget::initPageSizes() // Set the dialog to use the given QPrinter // Usually only called on first creation -void QPageSetupWidget::setPrinter(QPrinter *printer) +void QPageSetupWidget::setPrinter(QPrinter *printer, QPrintDevice *printDevice, + QPrinter::OutputFormat outputFormat, const QString &printerName) { m_printer = printer; // Initialize the layout to the current QPrinter layout m_pageLayout = m_printer->pageLayout(); + + if (printDevice) + m_pageLayout.setPageSize(printDevice->defaultPageSize()); + // 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) @@ -387,14 +392,6 @@ void QPageSetupWidget::setPrinter(QPrinter *printer) m_units = m_pageLayout.units(); m_pagePreview->setPageLayout(m_pageLayout); - // Then update the widget with the current printer details - selectPrinter(m_printer->outputFormat(), m_printer->printerName()); -} - -// The printer selected in the QPrintDialog has been changed, update the widget to reflect this -// 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(); |