diff options
author | J-P Nurmi <jpnurmi@qt.io> | 2016-12-20 22:28:43 +0100 |
---|---|---|
committer | J-P Nurmi <jpnurmi@qt.io> | 2016-12-21 12:07:22 +0000 |
commit | fed1476148399f4402ce2069874e7c66e834e764 (patch) | |
tree | baac437da4423d7be890c01e7064de04b9bf1cf0 /src | |
parent | 7aee63b8a5db7721e079e1a3402a3ca6b4b1d06e (diff) |
Add QQuickAbstractButton::buttonChange()
Merge the various virtuals to a single method that takes an enum value
indicating the type of the change. This way we don't need to keep adding
more and more virtuals, but can just extend the enum. The next in line
is ButtonPressedChanged for the upcoming DelayButton.
Change-Id: I40ebf170470790730217aba48c80daff8118dfba
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/quicktemplates2/qquickabstractbutton.cpp | 39 | ||||
-rw-r--r-- | src/quicktemplates2/qquickabstractbutton_p.h | 13 | ||||
-rw-r--r-- | src/quicktemplates2/qquickbutton.cpp | 6 | ||||
-rw-r--r-- | src/quicktemplates2/qquickbutton_p.h | 2 | ||||
-rw-r--r-- | src/quicktemplates2/qquickcheckbox.cpp | 7 | ||||
-rw-r--r-- | src/quicktemplates2/qquickcheckbox_p.h | 2 | ||||
-rw-r--r-- | src/quicktemplates2/qquickcheckdelegate.cpp | 7 | ||||
-rw-r--r-- | src/quicktemplates2/qquickcheckdelegate_p.h | 2 | ||||
-rw-r--r-- | src/quicktemplates2/qquickswitch.cpp | 7 | ||||
-rw-r--r-- | src/quicktemplates2/qquickswitch_p.h | 2 | ||||
-rw-r--r-- | src/quicktemplates2/qquickswitchdelegate.cpp | 7 | ||||
-rw-r--r-- | src/quicktemplates2/qquickswitchdelegate_p.h | 2 |
12 files changed, 52 insertions, 44 deletions
diff --git a/src/quicktemplates2/qquickabstractbutton.cpp b/src/quicktemplates2/qquickabstractbutton.cpp index 1724ead1..c47e6dcb 100644 --- a/src/quicktemplates2/qquickabstractbutton.cpp +++ b/src/quicktemplates2/qquickabstractbutton.cpp @@ -268,10 +268,9 @@ void QQuickAbstractButton::setText(const QString &text) if (d->text == text) return; - QString oldText = d->text; d->text = text; setAccessibleName(text); - textChange(text, oldText); + buttonChange(ButtonTextChange); emit textChanged(); } @@ -368,7 +367,7 @@ void QQuickAbstractButton::setChecked(bool checked) d->checked = checked; setAccessibleProperty("checked", checked); - checkStateSet(); + buttonChange(ButtonCheckedChange); emit checkedChanged(); } @@ -401,7 +400,7 @@ void QQuickAbstractButton::setCheckable(bool checkable) d->checkable = checkable; setAccessibleProperty("checkable", checkable); - checkableChange(); + buttonChange(ButtonCheckableChange); emit checkableChanged(); } @@ -449,7 +448,7 @@ void QQuickAbstractButton::setAutoRepeat(bool repeat) d->stopPressRepeat(); d->autoRepeat = repeat; - autoRepeatChange(); + buttonChange(ButtonAutoRepeatChange); } /*! @@ -623,13 +622,19 @@ void QQuickAbstractButton::timerEvent(QTimerEvent *event) } } -void QQuickAbstractButton::checkStateSet() +void QQuickAbstractButton::buttonChange(ButtonChange change) { Q_D(QQuickAbstractButton); - if (d->checked) { - QQuickAbstractButton *button = d->findCheckedButton(); - if (button && button != this) - button->setChecked(false); + switch (change) { + case ButtonCheckedChange: + if (d->checked) { + QQuickAbstractButton *button = d->findCheckedButton(); + if (button && button != this) + button->setChecked(false); + } + break; + default: + break; } } @@ -640,20 +645,6 @@ void QQuickAbstractButton::nextCheckState() d->toggle(!d->checked); } -void QQuickAbstractButton::checkableChange() -{ -} - -void QQuickAbstractButton::autoRepeatChange() -{ -} - -void QQuickAbstractButton::textChange(const QString &newText, const QString &oldText) -{ - Q_UNUSED(newText); - Q_UNUSED(oldText); -} - #ifndef QT_NO_ACCESSIBILITY void QQuickAbstractButton::accessibilityActiveChanged(bool active) { diff --git a/src/quicktemplates2/qquickabstractbutton_p.h b/src/quicktemplates2/qquickabstractbutton_p.h index 00378bce..b8c9476f 100644 --- a/src/quicktemplates2/qquickabstractbutton_p.h +++ b/src/quicktemplates2/qquickabstractbutton_p.h @@ -126,12 +126,15 @@ protected: void mouseUngrabEvent() override; void timerEvent(QTimerEvent *event) override; - virtual void checkStateSet(); - virtual void nextCheckState(); + enum ButtonChange { + ButtonAutoRepeatChange, + ButtonCheckedChange, + ButtonCheckableChange, + ButtonTextChange + }; + virtual void buttonChange(ButtonChange change); - virtual void checkableChange(); - virtual void autoRepeatChange(); - virtual void textChange(const QString &newText, const QString &oldText); + virtual void nextCheckState(); #ifndef QT_NO_ACCESSIBILITY void accessibilityActiveChanged(bool active) override; diff --git a/src/quicktemplates2/qquickbutton.cpp b/src/quicktemplates2/qquickbutton.cpp index b11d2179..4149e73b 100644 --- a/src/quicktemplates2/qquickbutton.cpp +++ b/src/quicktemplates2/qquickbutton.cpp @@ -106,9 +106,11 @@ QQuickButton::QQuickButton(QQuickButtonPrivate &dd, QQuickItem *parent) : The default value is \c false. */ -void QQuickButton::autoRepeatChange() +void QQuickButton::buttonChange(ButtonChange change) { - emit autoRepeatChanged(); + QQuickAbstractButton::buttonChange(change); + if (change == ButtonAutoRepeatChange) + emit autoRepeatChanged(); } QFont QQuickButton::defaultFont() const diff --git a/src/quicktemplates2/qquickbutton_p.h b/src/quicktemplates2/qquickbutton_p.h index 5edbbe4e..c9950301 100644 --- a/src/quicktemplates2/qquickbutton_p.h +++ b/src/quicktemplates2/qquickbutton_p.h @@ -78,7 +78,7 @@ Q_SIGNALS: protected: QQuickButton(QQuickButtonPrivate &dd, QQuickItem *parent); - void autoRepeatChange() override; + void buttonChange(ButtonChange change) override; QFont defaultFont() const override; diff --git a/src/quicktemplates2/qquickcheckbox.cpp b/src/quicktemplates2/qquickcheckbox.cpp index fd5ab6ba..9fbe5d9b 100644 --- a/src/quicktemplates2/qquickcheckbox.cpp +++ b/src/quicktemplates2/qquickcheckbox.cpp @@ -173,9 +173,12 @@ QFont QQuickCheckBox::defaultFont() const return QQuickControlPrivate::themeFont(QPlatformTheme::CheckBoxFont); } -void QQuickCheckBox::checkStateSet() +void QQuickCheckBox::buttonChange(ButtonChange change) { - setCheckState(isChecked() ? Qt::Checked : Qt::Unchecked); + if (change == ButtonCheckedChange) + setCheckState(isChecked() ? Qt::Checked : Qt::Unchecked); + else + QQuickAbstractButton::buttonChange(change); } void QQuickCheckBox::nextCheckState() diff --git a/src/quicktemplates2/qquickcheckbox_p.h b/src/quicktemplates2/qquickcheckbox_p.h index bee3bae4..c351e72d 100644 --- a/src/quicktemplates2/qquickcheckbox_p.h +++ b/src/quicktemplates2/qquickcheckbox_p.h @@ -76,7 +76,7 @@ Q_SIGNALS: protected: QFont defaultFont() const override; - void checkStateSet() override; + void buttonChange(ButtonChange change) override; void nextCheckState() override; #ifndef QT_NO_ACCESSIBILITY diff --git a/src/quicktemplates2/qquickcheckdelegate.cpp b/src/quicktemplates2/qquickcheckdelegate.cpp index 51bc8501..88ce25f3 100644 --- a/src/quicktemplates2/qquickcheckdelegate.cpp +++ b/src/quicktemplates2/qquickcheckdelegate.cpp @@ -170,9 +170,12 @@ QFont QQuickCheckDelegate::defaultFont() const return QQuickControlPrivate::themeFont(QPlatformTheme::ListViewFont); } -void QQuickCheckDelegate::checkStateSet() +void QQuickCheckDelegate::buttonChange(ButtonChange change) { - setCheckState(isChecked() ? Qt::Checked : Qt::Unchecked); + if (change == ButtonCheckedChange) + setCheckState(isChecked() ? Qt::Checked : Qt::Unchecked); + else + QQuickAbstractButton::buttonChange(change); } void QQuickCheckDelegate::nextCheckState() diff --git a/src/quicktemplates2/qquickcheckdelegate_p.h b/src/quicktemplates2/qquickcheckdelegate_p.h index d0509512..e63fabb7 100644 --- a/src/quicktemplates2/qquickcheckdelegate_p.h +++ b/src/quicktemplates2/qquickcheckdelegate_p.h @@ -76,7 +76,7 @@ Q_SIGNALS: protected: QFont defaultFont() const override; - void checkStateSet() override; + void buttonChange(ButtonChange change) override; void nextCheckState() override; #ifndef QT_NO_ACCESSIBILITY diff --git a/src/quicktemplates2/qquickswitch.cpp b/src/quicktemplates2/qquickswitch.cpp index b967fe56..4c2268ce 100644 --- a/src/quicktemplates2/qquickswitch.cpp +++ b/src/quicktemplates2/qquickswitch.cpp @@ -192,10 +192,13 @@ void QQuickSwitch::nextCheckState() QQuickAbstractButton::nextCheckState(); } -void QQuickSwitch::checkStateSet() +void QQuickSwitch::buttonChange(ButtonChange change) { Q_D(QQuickSwitch); - setPosition(d->checked ? 1.0 : 0.0); + if (change == ButtonCheckedChange) + setPosition(d->checked ? 1.0 : 0.0); + else + QQuickAbstractButton::buttonChange(change); } QT_END_NAMESPACE diff --git a/src/quicktemplates2/qquickswitch_p.h b/src/quicktemplates2/qquickswitch_p.h index 27a065b4..a4081288 100644 --- a/src/quicktemplates2/qquickswitch_p.h +++ b/src/quicktemplates2/qquickswitch_p.h @@ -80,7 +80,7 @@ protected: void mirrorChange() override; void nextCheckState() override; - void checkStateSet() override; + void buttonChange(ButtonChange change) override; private: Q_DISABLE_COPY(QQuickSwitch) diff --git a/src/quicktemplates2/qquickswitchdelegate.cpp b/src/quicktemplates2/qquickswitchdelegate.cpp index 4c0b430f..cd07b023 100644 --- a/src/quicktemplates2/qquickswitchdelegate.cpp +++ b/src/quicktemplates2/qquickswitchdelegate.cpp @@ -197,10 +197,13 @@ void QQuickSwitchDelegate::nextCheckState() QQuickItemDelegate::nextCheckState(); } -void QQuickSwitchDelegate::checkStateSet() +void QQuickSwitchDelegate::buttonChange(ButtonChange change) { Q_D(QQuickSwitchDelegate); - setPosition(d->checked ? 1.0 : 0.0); + if (change == ButtonCheckedChange) + setPosition(d->checked ? 1.0 : 0.0); + else + QQuickAbstractButton::buttonChange(change); } QT_END_NAMESPACE diff --git a/src/quicktemplates2/qquickswitchdelegate_p.h b/src/quicktemplates2/qquickswitchdelegate_p.h index c0cc21ac..bfd28091 100644 --- a/src/quicktemplates2/qquickswitchdelegate_p.h +++ b/src/quicktemplates2/qquickswitchdelegate_p.h @@ -81,7 +81,7 @@ protected: void mirrorChange() override; void nextCheckState() override; - void checkStateSet() override; + void buttonChange(ButtonChange change) override; private: Q_DISABLE_COPY(QQuickSwitchDelegate) |