diff options
Diffstat (limited to 'src/gui')
-rw-r--r-- | src/gui/kernel/qplatformdialoghelper.cpp | 42 | ||||
-rw-r--r-- | src/gui/kernel/qplatformdialoghelper.h | 20 |
2 files changed, 61 insertions, 1 deletions
diff --git a/src/gui/kernel/qplatformdialoghelper.cpp b/src/gui/kernel/qplatformdialoghelper.cpp index fe5db27117..5ddd718e69 100644 --- a/src/gui/kernel/qplatformdialoghelper.cpp +++ b/src/gui/kernel/qplatformdialoghelper.cpp @@ -693,6 +693,48 @@ QMessageDialogOptions::StandardButtons QMessageDialogOptions::standardButtons() return d->buttons; } +QMessageDialogOptions::ButtonRole QMessageDialogOptions::buttonRole(QMessageDialogOptions::StandardButton button) +{ + switch (button) { + case Ok: + case Save: + case Open: + case SaveAll: + case Retry: + case Ignore: + return AcceptRole; + + case Cancel: + case Close: + case Abort: + return RejectRole; + + case Discard: + return DestructiveRole; + + case Help: + return HelpRole; + + case Apply: + return ApplyRole; + + case Yes: + case YesToAll: + return YesRole; + + case No: + case NoToAll: + return NoRole; + + case RestoreDefaults: + case Reset: + return ResetRole; + + default: + break; + } + return InvalidRole; +} /*! \class QPlatformMessageDialogHelper diff --git a/src/gui/kernel/qplatformdialoghelper.h b/src/gui/kernel/qplatformdialoghelper.h index ad818c8644..eb461e3ab3 100644 --- a/src/gui/kernel/qplatformdialoghelper.h +++ b/src/gui/kernel/qplatformdialoghelper.h @@ -361,6 +361,21 @@ public: Q_DECLARE_FLAGS(StandardButtons, StandardButton) + enum ButtonRole { + InvalidRole = -1, + AcceptRole, + RejectRole, + DestructiveRole, + ActionRole, + HelpRole, + YesRole, + NoRole, + ResetRole, + ApplyRole, + + NRoles + }; + QMessageDialogOptions(); QMessageDialogOptions(const QMessageDialogOptions &rhs); QMessageDialogOptions &operator=(const QMessageDialogOptions &rhs); @@ -386,6 +401,8 @@ public: void setStandardButtons(StandardButtons buttons); StandardButtons standardButtons() const; + static ButtonRole buttonRole(StandardButton button); + private: QSharedDataPointer<QMessageDialogOptionsPrivate> d; }; @@ -400,7 +417,8 @@ public: void setOptions(const QSharedPointer<QMessageDialogOptions> &options); Q_SIGNALS: - void clicked(QMessageDialogOptions::StandardButton button); + void clicked(QMessageDialogOptions::StandardButton button); // TODO remove before 5.2 + void clicked(QMessageDialogOptions::StandardButton button, QMessageDialogOptions::ButtonRole role); private: QSharedPointer<QMessageDialogOptions> m_options; |