aboutsummaryrefslogtreecommitdiffstats
path: root/src/imports/platform/qquickplatformmessagedialog.cpp
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@qt.io>2016-08-13 20:08:59 +0200
committerJ-P Nurmi <jpnurmi@qt.io>2016-08-13 20:51:27 +0000
commit29783c4cccbcccc9ce071561c7682cc113ef5a45 (patch)
tree0ad6ef45c9577d5004b00b35c71513fe45c7fa00 /src/imports/platform/qquickplatformmessagedialog.cpp
parent887dc4744dca5c2e853fd49f600e597dc48c821d (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.cpp16
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