From fd4d347b0cda7de4040bb36be362884c0c5aea3d Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Wed, 17 May 2017 15:14:57 +0200 Subject: Add missing QQuickDialog::standardButton() invokable method [ChangeLog][Controls][Dialog] Added a standardButton() method for accessing the standard buttons in the dialog's button box. Change-Id: I7a92a0176985e1bc2c1a82f4bc9e78b813eee802 Reviewed-by: Mitch Curtis --- src/imports/templates/qtquicktemplates2plugin.cpp | 1 + src/quicktemplates2/qquickdialog.cpp | 16 ++++++++++++++++ src/quicktemplates2/qquickdialog_p.h | 2 ++ 3 files changed, 19 insertions(+) diff --git a/src/imports/templates/qtquicktemplates2plugin.cpp b/src/imports/templates/qtquicktemplates2plugin.cpp index c02573ce..e9f21378 100644 --- a/src/imports/templates/qtquicktemplates2plugin.cpp +++ b/src/imports/templates/qtquicktemplates2plugin.cpp @@ -269,6 +269,7 @@ void QtQuickTemplates2Plugin::registerTypes(const char *uri) qmlRegisterType(uri, 2, 3, "Action"); qmlRegisterType(uri, 2, 3, "ActionGroup"); qmlRegisterType(uri, 2, 3, "ButtonGroup"); + qmlRegisterType(uri, 2, 3, "Dialog"); qmlRegisterType(uri, 2, 3, "DialogButtonBox"); qRegisterMetaType(); qmlRegisterType(uri, 2, 3, "RangeSlider"); diff --git a/src/quicktemplates2/qquickdialog.cpp b/src/quicktemplates2/qquickdialog.cpp index 00719ae4..eb7b658e 100644 --- a/src/quicktemplates2/qquickdialog.cpp +++ b/src/quicktemplates2/qquickdialog.cpp @@ -300,6 +300,22 @@ void QQuickDialog::setStandardButtons(QPlatformDialogHelper::StandardButtons but emit standardButtonsChanged(); } +/*! + \since QtQuick.Controls 2.3 + \qmlmethod AbstractButton QtQuick.Controls::Dialog::standardButton(StandardButton button) + + Returns the specified standard \a button, or \c null if it does not exist. + + \sa standardButtons +*/ +QQuickAbstractButton *QQuickDialog::standardButton(QPlatformDialogHelper::StandardButton button) const +{ + Q_D(const QQuickDialog); + if (!d->buttonBox) + return nullptr; + return d->buttonBox->standardButton(button); +} + /*! \since QtQuick.Controls 2.3 \qmlproperty int QtQuick.Controls::Dialog::result diff --git a/src/quicktemplates2/qquickdialog_p.h b/src/quicktemplates2/qquickdialog_p.h index 0743ee0a..e6c8d1ce 100644 --- a/src/quicktemplates2/qquickdialog_p.h +++ b/src/quicktemplates2/qquickdialog_p.h @@ -54,6 +54,7 @@ QT_BEGIN_NAMESPACE class QQuickDialogPrivate; +class QQuickAbstractButton; class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickDialog : public QQuickPopup { @@ -79,6 +80,7 @@ public: QPlatformDialogHelper::StandardButtons standardButtons() const; void setStandardButtons(QPlatformDialogHelper::StandardButtons buttons); + Q_REVISION(3) Q_INVOKABLE QQuickAbstractButton *standardButton(QPlatformDialogHelper::StandardButton button) const; enum StandardCode { Rejected, Accepted }; Q_ENUM(StandardCode) -- cgit v1.2.3