aboutsummaryrefslogtreecommitdiffstats
path: root/src/imports/platform/qquickplatformmessagedialog.cpp
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@qt.io>2016-08-13 20:29:41 +0200
committerJ-P Nurmi <jpnurmi@qt.io>2016-08-13 20:53:55 +0000
commit7121e119167165658fc1b92e65a9be4ddedc5683 (patch)
treef27e8f5c031f8a86154f6affbc4cda53c5ce34d2 /src/imports/platform/qquickplatformmessagedialog.cpp
parentef102fcb366e25fb59d943c642568bb37990b629 (diff)
Platform: add MessageDialog.clickedButton
To be more in line with QtQuick.Dialogs 1.x. Change-Id: Ic512222a88a376ebc142563dceccbbb1c3b98a75 Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
Diffstat (limited to 'src/imports/platform/qquickplatformmessagedialog.cpp')
-rw-r--r--src/imports/platform/qquickplatformmessagedialog.cpp25
1 files changed, 22 insertions, 3 deletions
diff --git a/src/imports/platform/qquickplatformmessagedialog.cpp b/src/imports/platform/qquickplatformmessagedialog.cpp
index d7e8881c..3e27e083 100644
--- a/src/imports/platform/qquickplatformmessagedialog.cpp
+++ b/src/imports/platform/qquickplatformmessagedialog.cpp
@@ -119,7 +119,7 @@ QT_BEGIN_NAMESPACE
This signal is emitted when a dialog \a button is clicked.
- \sa buttons
+ \sa buttons, clickedButton
*/
/*!
@@ -233,7 +233,9 @@ QT_BEGIN_NAMESPACE
Q_DECLARE_LOGGING_CATEGORY(qtLabsPlatformDialogs)
QQuickPlatformMessageDialog::QQuickPlatformMessageDialog(QObject *parent)
- : QQuickPlatformDialog(parent), m_options(QMessageDialogOptions::create())
+ : QQuickPlatformDialog(parent),
+ m_options(QMessageDialogOptions::create()),
+ m_clickedButton(QPlatformDialogHelper::NoButton)
{
QPlatformDialogHelper *dialog = QGuiApplicationPrivate::platformTheme()->createPlatformDialogHelper(QPlatformTheme::MessageDialog);
#ifdef QT_WIDGETS_LIB
@@ -341,7 +343,7 @@ void QQuickPlatformMessageDialog::setDetailedText(const QString &text)
\value MessageDialog.Ignore An "Ignore" button defined with the \c AcceptRole.
\value MessageDialog.NoButton The dialog has no buttons.
- \sa clicked()
+ \sa clicked(), clickedButton
*/
QPlatformDialogHelper::StandardButtons QQuickPlatformMessageDialog::buttons() const
{
@@ -357,6 +359,18 @@ void QQuickPlatformMessageDialog::setButtons(QPlatformDialogHelper::StandardButt
emit buttonsChanged();
}
+/*!
+ \qmlproperty enumeration Qt.labs.platform::MessageDialog::clickedButton
+
+ This property holds the button that was clicked. The default value is \c MessageDialog.NoButton.
+
+ \sa buttons
+*/
+QPlatformDialogHelper::StandardButton QQuickPlatformMessageDialog::clickedButton() const
+{
+ return m_clickedButton;
+}
+
void QQuickPlatformMessageDialog::applyOptions()
{
m_options->setWindowTitle(title());
@@ -364,6 +378,9 @@ void QQuickPlatformMessageDialog::applyOptions()
void QQuickPlatformMessageDialog::handleClick(QPlatformDialogHelper::StandardButton button)
{
+ bool changed = m_clickedButton != button;
+ m_clickedButton = button;
+
QPlatformDialogHelper::ButtonRole role = QPlatformDialogHelper::buttonRole(button);
if (role == QPlatformDialogHelper::AcceptRole)
accept();
@@ -373,6 +390,8 @@ void QQuickPlatformMessageDialog::handleClick(QPlatformDialogHelper::StandardBut
close();
emit clicked(button);
+ if (changed)
+ emit clickedButtonChanged();
switch (button) {
case QPlatformDialogHelper::Ok: emit okClicked(); break;