aboutsummaryrefslogtreecommitdiffstats
path: root/src/quicktemplates2/qquickmenuitem.cpp
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@qt.io>2017-06-21 19:16:51 +0200
committerJ-P Nurmi <jpnurmi@qt.io>2017-06-22 11:36:55 +0000
commit228b4401308275d3729745682b11ae0de9c3fa46 (patch)
treee779553ac533857d5fdb4505a47df9f9487cd72c /src/quicktemplates2/qquickmenuitem.cpp
parent697658ab9a6f68cd76a5cd2bb8185b2a6ab06844 (diff)
Enable and disable sub-menu items accordingly
The menu item that presents a sub-menu now follows the sub-menu's enabled state. Change-Id: Iee200c14facf4d6d19dbbd8d5b8ad43482ca305a Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Diffstat (limited to 'src/quicktemplates2/qquickmenuitem.cpp')
-rw-r--r--src/quicktemplates2/qquickmenuitem.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/quicktemplates2/qquickmenuitem.cpp b/src/quicktemplates2/qquickmenuitem.cpp
index 446d12d2..c682e13a 100644
--- a/src/quicktemplates2/qquickmenuitem.cpp
+++ b/src/quicktemplates2/qquickmenuitem.cpp
@@ -112,18 +112,28 @@ void QQuickMenuItemPrivate::setSubMenu(QQuickMenu *newSubMenu)
if (subMenu == newSubMenu)
return;
- if (subMenu)
+ if (subMenu) {
QObject::disconnect(subMenu, &QQuickMenu::titleChanged, q, &QQuickAbstractButton::setText);
+ QObjectPrivate::disconnect(subMenu, &QQuickPopup::enabledChanged, this, &QQuickMenuItemPrivate::updateEnabled);
+ }
if (newSubMenu) {
QObject::connect(newSubMenu, &QQuickMenu::titleChanged, q, &QQuickAbstractButton::setText);
+ QObjectPrivate::connect(newSubMenu, &QQuickPopup::enabledChanged, this, &QQuickMenuItemPrivate::updateEnabled);
q->setText(newSubMenu->title());
}
subMenu = newSubMenu;
+ updateEnabled();
emit q->subMenuChanged();
}
+void QQuickMenuItemPrivate::updateEnabled()
+{
+ Q_Q(QQuickMenuItem);
+ q->setEnabled(subMenu && subMenu->isEnabled());
+}
+
/*!
\qmlsignal void QtQuick.Controls::MenuItem::triggered()