aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@qt.io>2016-12-20 22:28:43 +0100
committerJ-P Nurmi <jpnurmi@qt.io>2016-12-21 12:07:22 +0000
commitfed1476148399f4402ce2069874e7c66e834e764 (patch)
treebaac437da4423d7be890c01e7064de04b9bf1cf0
parent7aee63b8a5db7721e079e1a3402a3ca6b4b1d06e (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>
-rw-r--r--src/quicktemplates2/qquickabstractbutton.cpp39
-rw-r--r--src/quicktemplates2/qquickabstractbutton_p.h13
-rw-r--r--src/quicktemplates2/qquickbutton.cpp6
-rw-r--r--src/quicktemplates2/qquickbutton_p.h2
-rw-r--r--src/quicktemplates2/qquickcheckbox.cpp7
-rw-r--r--src/quicktemplates2/qquickcheckbox_p.h2
-rw-r--r--src/quicktemplates2/qquickcheckdelegate.cpp7
-rw-r--r--src/quicktemplates2/qquickcheckdelegate_p.h2
-rw-r--r--src/quicktemplates2/qquickswitch.cpp7
-rw-r--r--src/quicktemplates2/qquickswitch_p.h2
-rw-r--r--src/quicktemplates2/qquickswitchdelegate.cpp7
-rw-r--r--src/quicktemplates2/qquickswitchdelegate_p.h2
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)