diff options
-rw-r--r-- | src/widgets/widgets/qtoolbutton.cpp | 16 | ||||
-rw-r--r-- | src/widgets/widgets/qtoolbutton.h | 1 |
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; |