From a6f7ba0f8bb6327410421d95282bf7250d5d532f Mon Sep 17 00:00:00 2001 From: Martin Klapetek Date: Thu, 19 Sep 2013 21:49:52 +0200 Subject: [PATCH] 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 --- src/printsupport/dialogs/qprintdialog_unix.cpp | 18 ++++++++++-------- 1 file 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(); + if (propertiesDialogShown) { + QCUPSSupport::PagesPerSheet pagesPerSheet = propertiesDialog->widget.pageSetup->widget.pagesPerSheetCombo->currentData().value(); - QCUPSSupport::PageSet pageSet = optionsPane->options.pageSetCombo->currentData().value(); + QCUPSSupport::PageSet pageSet = optionsPane->options.pageSetCombo->currentData().value(); - 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