diff options
author | J-P Nurmi <jpnurmi@qt.io> | 2017-06-21 19:16:51 +0200 |
---|---|---|
committer | J-P Nurmi <jpnurmi@qt.io> | 2017-06-22 11:36:55 +0000 |
commit | 228b4401308275d3729745682b11ae0de9c3fa46 (patch) | |
tree | e779553ac533857d5fdb4505a47df9f9487cd72c /src/quicktemplates2/qquickmenuitem.cpp | |
parent | 697658ab9a6f68cd76a5cd2bb8185b2a6ab06844 (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.cpp | 12 |
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() |