summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/widgets/widgets/qtoolbutton.cpp16
-rw-r--r--src/widgets/widgets/qtoolbutton.h1
2 files changed, 10 insertions, 7 deletions
diff --git a/src/widgets/widgets/qtoolbutton.cpp b/src/widgets/widgets/qtoolbutton.cpp
index 81b2998849..2c7f973947 100644
--- a/src/widgets/widgets/qtoolbutton.cpp
+++ b/src/widgets/widgets/qtoolbutton.cpp
@@ -963,12 +963,6 @@ void QToolButton::setDefaultAction(QAction *action)
}
#endif
setCheckable(action->isCheckable());
- if (action->isCheckable()) {
- connect(this, &QAbstractButton::toggled, this, [this](bool checked) {
- if (defaultAction())
- defaultAction()->setChecked(checked);
- }, Qt::UniqueConnection);
- }
setChecked(action->isChecked());
setEnabled(action->isEnabled());
if (action->d_func()->fontSet)
@@ -987,7 +981,15 @@ QAction *QToolButton::defaultAction() const
return d->defaultAction;
}
-
+/*!
+ \reimp
+ */
+void QToolButton::checkStateSet()
+{
+ Q_D(QToolButton);
+ if (d->defaultAction && d->defaultAction->isCheckable())
+ d->defaultAction->setChecked(isChecked());
+}
/*!
\reimp
diff --git a/src/widgets/widgets/qtoolbutton.h b/src/widgets/widgets/qtoolbutton.h
index 96702c145f..062eeea708 100644
--- a/src/widgets/widgets/qtoolbutton.h
+++ b/src/widgets/widgets/qtoolbutton.h
@@ -118,6 +118,7 @@ protected:
void changeEvent(QEvent *) override;
bool hitButton(const QPoint &pos) const override;
+ void checkStateSet() override;
void nextCheckState() override;
virtual void initStyleOption(QStyleOptionToolButton *option) const;