aboutsummaryrefslogtreecommitdiffstats
path: root/src/quicktemplates2/qquickaction.cpp
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@qt.io>2017-04-10 14:15:02 +0200
committerJ-P Nurmi <jpnurmi@qt.io>2017-04-19 10:50:05 +0000
commit03607d6d3cf3a8568e74fad8f792375c24a19d0c (patch)
treee00099e97e62df864fcf6902b501a564cd3dfda6 /src/quicktemplates2/qquickaction.cpp
parent7da6884ae2f6d8631cef2d825eaa874151100b7b (diff)
Add ActionGroup
[ChangeLog][Controls][ActionGroup] Introduced ActionGroup, a non-visual group of actions that is mutually exclusive by default. Task-number: QTBUG-50705 Change-Id: Ia33103173441ca8980341b7c94aba0db3264284d Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Diffstat (limited to 'src/quicktemplates2/qquickaction.cpp')
-rw-r--r--src/quicktemplates2/qquickaction.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/quicktemplates2/qquickaction.cpp b/src/quicktemplates2/qquickaction.cpp
index 06035455..10ba5f37 100644
--- a/src/quicktemplates2/qquickaction.cpp
+++ b/src/quicktemplates2/qquickaction.cpp
@@ -36,6 +36,7 @@
#include "qquickaction_p.h"
#include "qquickaction_p_p.h"
+#include "qquickactiongroup_p.h"
#include "qquickshortcutcontext_p_p.h"
#include "qquickicon_p.h"
@@ -176,7 +177,8 @@ QQuickActionPrivate::QQuickActionPrivate()
checked(false),
checkable(false),
icon(nullptr),
- defaultShortcutEntry(nullptr)
+ defaultShortcutEntry(nullptr),
+ group(nullptr)
{
}
@@ -338,6 +340,9 @@ QQuickAction::QQuickAction(QObject *parent)
QQuickAction::~QQuickAction()
{
Q_D(QQuickAction);
+ if (d->group)
+ d->group->removeAction(this);
+
for (QQuickActionPrivate::ShortcutEntry *entry : qAsConst(d->shortcutEntries))
d->unwatchItem(qobject_cast<QQuickItem *>(entry->target()));
@@ -391,7 +396,7 @@ QQuickIcon *QQuickAction::icon() const
bool QQuickAction::isEnabled() const
{
Q_D(const QQuickAction);
- return d->enabled;
+ return d->enabled && (!d->group || d->group->isEnabled());
}
void QQuickAction::setEnabled(bool enabled)