diff options
-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) |