diff options
author | J-P Nurmi <jpnurmi@qt.io> | 2016-08-13 20:08:59 +0200 |
---|---|---|
committer | J-P Nurmi <jpnurmi@qt.io> | 2016-08-13 20:51:27 +0000 |
commit | 29783c4cccbcccc9ce071561c7682cc113ef5a45 (patch) | |
tree | 0ad6ef45c9577d5004b00b35c71513fe45c7fa00 /src/imports/platform/qquickplatformmessagedialog.cpp | |
parent | 887dc4744dca5c2e853fd49f600e597dc48c821d (diff) |
Platform.MessageDialog: fix accepted and rejected signals
The clicked signal from the platform dialog cannot be wired to
the close slot. We must check the role and act accordingly.
Change-Id: I2cb9e106814f9b901d76dd79ff8eeeafe98d4d46
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
Diffstat (limited to 'src/imports/platform/qquickplatformmessagedialog.cpp')
-rw-r--r-- | src/imports/platform/qquickplatformmessagedialog.cpp | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/src/imports/platform/qquickplatformmessagedialog.cpp b/src/imports/platform/qquickplatformmessagedialog.cpp index 05bcc080..1d11d808 100644 --- a/src/imports/platform/qquickplatformmessagedialog.cpp +++ b/src/imports/platform/qquickplatformmessagedialog.cpp @@ -129,8 +129,7 @@ QQuickPlatformMessageDialog::QQuickPlatformMessageDialog(QObject *parent) dialog = new QWidgetPlatformMessageDialog(this); #endif if (QPlatformMessageDialogHelper *messageDialog = qobject_cast<QPlatformMessageDialogHelper *>(dialog)) { - connect(messageDialog, &QPlatformMessageDialogHelper::clicked, this, &QQuickPlatformDialog::close); - connect(messageDialog, &QPlatformMessageDialogHelper::clicked, this, &QQuickPlatformMessageDialog::clicked); + connect(messageDialog, &QPlatformMessageDialogHelper::clicked, this, &QQuickPlatformMessageDialog::handleClick); messageDialog->setOptions(m_options); } setHandle(dialog); @@ -249,4 +248,17 @@ void QQuickPlatformMessageDialog::applyOptions() m_options->setWindowTitle(title()); } +void QQuickPlatformMessageDialog::handleClick(QPlatformDialogHelper::StandardButton button) +{ + QPlatformDialogHelper::ButtonRole role = QPlatformDialogHelper::buttonRole(button); + if (role == QPlatformDialogHelper::AcceptRole) + accept(); + else if (role == QPlatformDialogHelper::RejectRole) + reject(); + else + close(); + + emit clicked(button); +} + QT_END_NAMESPACE |