diff options
author | Martin Klapetek <mklapetek@kde.org> | 2013-09-19 21:49:52 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-09-20 00:50:36 +0200 |
commit | a6f7ba0f8bb6327410421d95282bf7250d5d532f (patch) | |
tree | 774976856007ce127c389f227731defe41862879 /src | |
parent | 00e50fb97c3d9b91193fef50d63b430e4648ac52 (diff) |
Check if Print Properties dialog was shown before accessing it
Prevents a crash in case the user did not open
the properties dialog, in which case
QUnixPrintWidgetPrivate::propertiesDialog is null.
Change-Id: I43c8c6ab90053757835bbf41d6167204d42efcef
Reviewed-by: John Layt <jlayt@kde.org>
Diffstat (limited to 'src')
-rw-r--r-- | src/printsupport/dialogs/qprintdialog_unix.cpp | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/src/printsupport/dialogs/qprintdialog_unix.cpp b/src/printsupport/dialogs/qprintdialog_unix.cpp index 882d76a041..5e9e6fcc99 100644 --- a/src/printsupport/dialogs/qprintdialog_unix.cpp +++ b/src/printsupport/dialogs/qprintdialog_unix.cpp @@ -864,16 +864,18 @@ bool QUnixPrintWidgetPrivate::checkFields() } #if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY) - QCUPSSupport::PagesPerSheet pagesPerSheet = propertiesDialog->widget.pageSetup->widget.pagesPerSheetCombo->currentData().value<QCUPSSupport::PagesPerSheet>(); + if (propertiesDialogShown) { + QCUPSSupport::PagesPerSheet pagesPerSheet = propertiesDialog->widget.pageSetup->widget.pagesPerSheetCombo->currentData().value<QCUPSSupport::PagesPerSheet>(); - QCUPSSupport::PageSet pageSet = optionsPane->options.pageSetCombo->currentData().value<QCUPSSupport::PageSet>(); + QCUPSSupport::PageSet pageSet = optionsPane->options.pageSetCombo->currentData().value<QCUPSSupport::PageSet>(); - if (propertiesDialogShown - && pagesPerSheet != QCUPSSupport::OnePagePerSheet - && pageSet != QCUPSSupport::AllPages) { - QMessageBox::warning(q, q->windowTitle(), - QPrintDialog::tr("Options 'Pages Per Sheet' and 'Page Set' cannot be used together.\nPlease turn one of those options off.")); - return false; + + if (pagesPerSheet != QCUPSSupport::OnePagePerSheet + && pageSet != QCUPSSupport::AllPages) { + QMessageBox::warning(q, q->windowTitle(), + QPrintDialog::tr("Options 'Pages Per Sheet' and 'Page Set' cannot be used together.\nPlease turn one of those options off.")); + return false; + } } #endif |