diff options
author | J-P Nurmi <jpnurmi@qt.io> | 2017-10-09 16:29:28 +0200 |
---|---|---|
committer | J-P Nurmi <jpnurmi@qt.io> | 2017-10-09 14:45:04 +0000 |
commit | cb0519724e3d937feaa506f0ed65769347ad9de0 (patch) | |
tree | 6191605119cf8a377822d2324a3b5a3f7d92ce8b /src/quicktemplates2/qquickaction.cpp | |
parent | fdfb0e1d1cca04645bff07fbe7cc09f72f82b0da (diff) |
QQuickAction: don't uncheck the checked action of an exclusive group
The logic is adapted from QAction::activate().
Task-number: QTBUG-63674
Change-Id: I7af127ea917e40e6a8ca99c2528362cf6ad283b8
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Diffstat (limited to 'src/quicktemplates2/qquickaction.cpp')
-rw-r--r-- | src/quicktemplates2/qquickaction.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/quicktemplates2/qquickaction.cpp b/src/quicktemplates2/qquickaction.cpp index fb6d7c3e..0e51daef 100644 --- a/src/quicktemplates2/qquickaction.cpp +++ b/src/quicktemplates2/qquickaction.cpp @@ -526,10 +526,13 @@ void QQuickAction::trigger(QObject *source) if (!d->enabled) return; - if (d->checkable) + QPointer<QObject> guard = this; + // the checked action of an exclusive group cannot be unchecked + if (d->checkable && (!d->checked || !d->group || !d->group->isExclusive() || d->group->checkedAction() != this)) toggle(source); - emit triggered(source); + if (!guard.isNull()) + emit triggered(source); } bool QQuickAction::event(QEvent *event) |