aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/imports/platform/qquickplatformmessagedialog.cpp16
-rw-r--r--src/imports/platform/qquickplatformmessagedialog_p.h3
2 files changed, 17 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
diff --git a/src/imports/platform/qquickplatformmessagedialog_p.h b/src/imports/platform/qquickplatformmessagedialog_p.h
index 00ba190e..2ba461ca 100644
--- a/src/imports/platform/qquickplatformmessagedialog_p.h
+++ b/src/imports/platform/qquickplatformmessagedialog_p.h
@@ -87,6 +87,9 @@ Q_SIGNALS:
protected:
void applyOptions() override;
+private Q_SLOTS:
+ void handleClick(QPlatformDialogHelper::StandardButton button);
+
private:
QSharedPointer<QMessageDialogOptions> m_options;
};