summaryrefslogtreecommitdiffstats
path: root/src/printsupport/dialogs/qprintpreviewdialog.cpp
diff options
context:
space:
mode:
authorAhmad Samir <a.samirh78@gmail.com>2018-11-05 17:07:03 +0200
committerAhmad Samir <a.samirh78@gmail.com>2019-02-26 19:44:09 +0000
commitac7f46dd9114051756f56571b9cb3bda002314a1 (patch)
tree8161fc94965c5658323420d07ca51bf2ca6b1590 /src/printsupport/dialogs/qprintpreviewdialog.cpp
parentc93670c5a03cecbca9bb43aff65ceea3a401c7b1 (diff)
Unix: QPageSetupDialog: Use print device default paper size
When invoking QPageSetupDialog from QPrintPreviewDialog, don't construct a new QPageSetupDialog every time the pageSetup action is triggered, instead reuse the dialog if it's already been created. This way setPrinter is called only once. This matches how QPrintDialog invokes QPageSetupDialog. Set the default print device paper size in initPageSizes() instead of setPrinter(). Change-Id: Ic82e6dd47ee00ecdd942c5ba59dbf09fb18ef218 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io> Reviewed-by: Andy Shaw <andy.shaw@qt.io>
Diffstat (limited to 'src/printsupport/dialogs/qprintpreviewdialog.cpp')
-rw-r--r--src/printsupport/dialogs/qprintpreviewdialog.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/printsupport/dialogs/qprintpreviewdialog.cpp b/src/printsupport/dialogs/qprintpreviewdialog.cpp
index e6b665f82c..258741c35c 100644
--- a/src/printsupport/dialogs/qprintpreviewdialog.cpp
+++ b/src/printsupport/dialogs/qprintpreviewdialog.cpp
@@ -152,8 +152,8 @@ class QPrintPreviewDialogPrivate : public QDialogPrivate
Q_DECLARE_PUBLIC(QPrintPreviewDialog)
public:
QPrintPreviewDialogPrivate()
- : printDialog(nullptr), ownPrinter(false),
- initialized(false) {}
+ : printDialog(nullptr), pageSetupDialog(nullptr),
+ ownPrinter(false), initialized(false) {}
// private slots
void _q_fit(QAction *action);
@@ -178,6 +178,7 @@ public:
void updateZoomFactor();
QPrintDialog *printDialog;
+ QPageSetupDialog *pageSetupDialog;
QPrintPreviewWidget *preview;
QPrinter *printer;
bool ownPrinter;
@@ -602,8 +603,10 @@ void QPrintPreviewDialogPrivate::_q_pageSetup()
{
Q_Q(QPrintPreviewDialog);
- QPageSetupDialog pageSetup(printer, q);
- if (pageSetup.exec() == QDialog::Accepted) {
+ if (!pageSetupDialog)
+ pageSetupDialog = new QPageSetupDialog(printer, q);
+
+ if (pageSetupDialog->exec() == QDialog::Accepted) {
// update possible orientation changes
if (preview->orientation() == QPrinter::Portrait) {
portraitAction->setChecked(true);
@@ -713,6 +716,7 @@ QPrintPreviewDialog::~QPrintPreviewDialog()
if (d->ownPrinter)
delete d->printer;
delete d->printDialog;
+ delete d->pageSetupDialog;
}
/*!