summaryrefslogtreecommitdiffstats
path: root/src/platformsupport/dbusmenu/qdbusmenutypes.cpp
diff options
context:
space:
mode:
authorDmitry Shachnev <mitya57@gmail.com>2016-01-22 10:46:05 +0300
committerDmitry Shachnev <mitya57@gmail.com>2016-02-09 16:54:58 +0000
commit488cf78e44947efffcf3ebde62d7fb2d4fbf4345 (patch)
treee8857d0de4d8eb21f57df5a8ed358709f70ef656 /src/platformsupport/dbusmenu/qdbusmenutypes.cpp
parentb30edc51535c389bdee9f676c4b5003d37242092 (diff)
dbusmenu: Use proper toggle-type for items that are part of group
To achieve that, add a new virtual setHasExclusiveGroup() method to QPlatformMenuItem class (optional because we don't want to break existing platform themes), call it when converting QActions into platform menu items, and use it when exporting the menu items over D-Bus. Also, send ActionChanged event for actions when their group is changed, so that the platform menus are updated too. Change-Id: I8d951ace8c4097decec2a0154163e3672214effb Reviewed-by: Shawn Rutledge <shawn.rutledge@theqtcompany.com>
Diffstat (limited to 'src/platformsupport/dbusmenu/qdbusmenutypes.cpp')
-rw-r--r--src/platformsupport/dbusmenu/qdbusmenutypes.cpp5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/platformsupport/dbusmenu/qdbusmenutypes.cpp b/src/platformsupport/dbusmenu/qdbusmenutypes.cpp
index 03e14c57b2..fbd487aec7 100644
--- a/src/platformsupport/dbusmenu/qdbusmenutypes.cpp
+++ b/src/platformsupport/dbusmenu/qdbusmenutypes.cpp
@@ -184,9 +184,8 @@ QDBusMenuItem::QDBusMenuItem(const QDBusPlatformMenuItem *item)
m_properties.insert(QLatin1String("children-display"), QLatin1String("submenu"));
m_properties.insert(QLatin1String("enabled"), item->isEnabled());
if (item->isCheckable()) {
- // dbusmenu supports "radio" too, but QPlatformMenuItem doesn't seem to
- // (QAction would have an exclusive actionGroup)
- m_properties.insert(QLatin1String("toggle-type"), QLatin1String("checkmark"));
+ QString toggleType = item->hasExclusiveGroup() ? QLatin1String("radio") : QLatin1String("checkmark");
+ m_properties.insert(QLatin1String("toggle-type"), toggleType);
m_properties.insert(QLatin1String("toggle-state"), item->isChecked() ? 1 : 0);
}
/* TODO support shortcuts