From 9d7ae28fcc683c185ee0f90728a21e0371e45e2d Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Mon, 27 Jun 2016 09:50:22 +0200 Subject: Platform dialogs: set the options on construction Platform dialogs hold a shared pointer to an options structure. Dialog implementations may access the options in various places (eg. QGtk3FileDialogHelper::selectFile()) and seem to rely that the options are not null at this point. Thus, pass the options pointer right away on construction instead of unnecessarily delaying to applyOptions(), to avoid potential crashes. Change-Id: I14b0801eb58a9834867dd302a6610e64adeea0cd Reviewed-by: Mitch Curtis --- src/imports/platform/qquickplatformmessagedialog.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'src/imports/platform/qquickplatformmessagedialog.cpp') diff --git a/src/imports/platform/qquickplatformmessagedialog.cpp b/src/imports/platform/qquickplatformmessagedialog.cpp index 68804bbc..05bcc080 100644 --- a/src/imports/platform/qquickplatformmessagedialog.cpp +++ b/src/imports/platform/qquickplatformmessagedialog.cpp @@ -131,6 +131,7 @@ QQuickPlatformMessageDialog::QQuickPlatformMessageDialog(QObject *parent) if (QPlatformMessageDialogHelper *messageDialog = qobject_cast(dialog)) { connect(messageDialog, &QPlatformMessageDialogHelper::clicked, this, &QQuickPlatformDialog::close); connect(messageDialog, &QPlatformMessageDialogHelper::clicked, this, &QQuickPlatformMessageDialog::clicked); + messageDialog->setOptions(m_options); } setHandle(dialog); } @@ -246,8 +247,6 @@ void QQuickPlatformMessageDialog::setButtons(QPlatformDialogHelper::StandardButt void QQuickPlatformMessageDialog::applyOptions() { m_options->setWindowTitle(title()); - if (QPlatformMessageDialogHelper *messageDialog = qobject_cast(handle())) - messageDialog->setOptions(m_options); } QT_END_NAMESPACE -- cgit v1.2.3