diff options
author | Volker Hilsheimer <volker.hilsheimer@qt.io> | 2020-04-15 11:14:22 +0200 |
---|---|---|
committer | Volker Hilsheimer <volker.hilsheimer@qt.io> | 2020-04-15 14:29:08 +0200 |
commit | e38e1d02cca8056c9efcf2ab186a76396a60f21f (patch) | |
tree | 1e53698d4e7da03fa0f0adc8382d41c225ed469d /src/widgets | |
parent | c61b81c3856d4019880d4350f5138d968ce4bd96 (diff) |
Add QButtonGroup::idClicked/Pressed/Released/Toggled signals
Following the deprecation of the signal overloads, the remaining signals
did not provide equivalent functionality for connecting a slot expecting
an integer. The mapping from QAbstractButton* to the ID is comparatively
cumbersome to do in the connected slot.
Add uniquely named signals that emit the ID of the button directly.
[ChangeLog][QtWidgets][QButtonGroup] Added signals
idClicked/Pressed/Released/Toggled that replace the deprecated signal
overloads.
Change-Id: I77215e4f815c4fb7dd6326e1f431230e6601e8f8
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'src/widgets')
-rw-r--r-- | src/widgets/widgets/qabstractbutton.cpp | 20 | ||||
-rw-r--r-- | src/widgets/widgets/qbuttongroup.cpp | 39 | ||||
-rw-r--r-- | src/widgets/widgets/qbuttongroup.h | 12 |
3 files changed, 63 insertions, 8 deletions
diff --git a/src/widgets/widgets/qabstractbutton.cpp b/src/widgets/widgets/qabstractbutton.cpp index badeec37ee..a128b23950 100644 --- a/src/widgets/widgets/qabstractbutton.cpp +++ b/src/widgets/widgets/qabstractbutton.cpp @@ -415,13 +415,16 @@ void QAbstractButtonPrivate::emitClicked() emit q->clicked(checked); #if QT_CONFIG(buttongroup) if (guard && group) { + const int id = group->id(q); + emit group->idClicked(id); #if QT_DEPRECATED_SINCE(5, 15) QT_WARNING_PUSH QT_WARNING_DISABLE_DEPRECATED - emit group->buttonClicked(group->id(q)); if (guard && group) + emit group->buttonClicked(id); QT_WARNING_POP #endif + if (guard && group) emit group->buttonClicked(q); } #endif @@ -434,13 +437,16 @@ void QAbstractButtonPrivate::emitPressed() emit q->pressed(); #if QT_CONFIG(buttongroup) if (guard && group) { + const int id = group->id(q); + emit group->idPressed(id); #if QT_DEPRECATED_SINCE(5, 15) QT_WARNING_PUSH QT_WARNING_DISABLE_DEPRECATED - emit group->buttonPressed(group->id(q)); if (guard && group) + emit group->buttonPressed(id); QT_WARNING_POP #endif + if (guard && group) emit group->buttonPressed(q); } #endif @@ -453,13 +459,16 @@ void QAbstractButtonPrivate::emitReleased() emit q->released(); #if QT_CONFIG(buttongroup) if (guard && group) { + const int id = group->id(q); + emit group->idReleased(id); #if QT_DEPRECATED_SINCE(5, 15) QT_WARNING_PUSH QT_WARNING_DISABLE_DEPRECATED - emit group->buttonReleased(group->id(q)); if (guard && group) + emit group->buttonReleased(id); QT_WARNING_POP #endif + if (guard && group) emit group->buttonReleased(q); } #endif @@ -472,13 +481,16 @@ void QAbstractButtonPrivate::emitToggled(bool checked) emit q->toggled(checked); #if QT_CONFIG(buttongroup) if (guard && group) { + const int id = group->id(q); + emit group->idToggled(id, checked); #if QT_DEPRECATED_SINCE(5, 15) QT_WARNING_PUSH QT_WARNING_DISABLE_DEPRECATED - emit group->buttonToggled(group->id(q), checked); if (guard && group) + emit group->buttonToggled(id, checked); QT_WARNING_POP #endif + if (guard && group) emit group->buttonToggled(q, checked); } #endif diff --git a/src/widgets/widgets/qbuttongroup.cpp b/src/widgets/widgets/qbuttongroup.cpp index 9162029cdb..5b407fc0f0 100644 --- a/src/widgets/widgets/qbuttongroup.cpp +++ b/src/widgets/widgets/qbuttongroup.cpp @@ -173,6 +173,16 @@ void QButtonGroup::setExclusive(bool exclusive) */ /*! + \fn void QButtonGroup::idClicked(int id) + \since 5.15 + + This signal is emitted when a button with the given \a id is + clicked. + + \sa checkedButton(), QAbstractButton::clicked() +*/ + +/*! \fn void QButtonGroup::buttonPressed(QAbstractButton *button) \since 4.2 @@ -193,6 +203,16 @@ void QButtonGroup::setExclusive(bool exclusive) */ /*! + \fn void QButtonGroup::idPressed(int id) + \since 5.15 + + This signal is emitted when a button with the given \a id is + pressed down. + + \sa QAbstractButton::pressed() +*/ + +/*! \fn void QButtonGroup::buttonReleased(QAbstractButton *button) \since 4.2 @@ -213,6 +233,16 @@ void QButtonGroup::setExclusive(bool exclusive) */ /*! + \fn void QButtonGroup::idReleased(int id) + \since 5.15 + + This signal is emitted when a button with the given \a id is + released. + + \sa QAbstractButton::released() +*/ + +/*! \fn void QButtonGroup::buttonToggled(QAbstractButton *button, bool checked) \since 5.2 @@ -233,6 +263,15 @@ void QButtonGroup::setExclusive(bool exclusive) \sa QAbstractButton::toggled() */ +/*! + \fn void QButtonGroup::idToggled(int id, bool checked) + \since 5.15 + + This signal is emitted when a button with the given \a id is toggled. + \a checked is true if the button is checked, or false if the button is unchecked. + + \sa QAbstractButton::toggled() +*/ /*! Adds the given \a button to the button group. If \a id is -1, diff --git a/src/widgets/widgets/qbuttongroup.h b/src/widgets/widgets/qbuttongroup.h index 2989dcb4ba..b2e507f31c 100644 --- a/src/widgets/widgets/qbuttongroup.h +++ b/src/widgets/widgets/qbuttongroup.h @@ -81,14 +81,18 @@ Q_SIGNALS: void buttonPressed(QAbstractButton *); void buttonReleased(QAbstractButton *); void buttonToggled(QAbstractButton *, bool); + void idClicked(int); + void idPressed(int); + void idReleased(int); + void idToggled(int, bool); #if QT_DEPRECATED_SINCE(5, 15) - QT_DEPRECATED_VERSION_X_5_15("Use QButtonGroup::buttonClicked(QAbstractButton *) instead") + QT_DEPRECATED_VERSION_X_5_15("Use QButtonGroup::idClicked(int) instead") void buttonClicked(int); - QT_DEPRECATED_VERSION_X_5_15("Use QButtonGroup::buttonPressed(QAbstractButton *) instead") + QT_DEPRECATED_VERSION_X_5_15("Use QButtonGroup::idPressed(int) instead") void buttonPressed(int); - QT_DEPRECATED_VERSION_X_5_15("Use QButtonGroup::buttonReleased(QAbstractButton *) instead") + QT_DEPRECATED_VERSION_X_5_15("Use QButtonGroup::idReleased(int) instead") void buttonReleased(int); - QT_DEPRECATED_VERSION_X_5_15("Use QButtonGroup::buttonToggled(QAbstractButton *, bool) instead") + QT_DEPRECATED_VERSION_X_5_15("Use QButtonGroup::idToggled(int, bool) instead") void buttonToggled(int, bool); #endif |