diff --git a/examples/gallery/main.qml b/examples/gallery/main.qml index cf24bec1e6c469ca0a9de05ee8f6336a852398d8..63047003c7b0d01a35bf9493566a5a0904fdd2ad 100644 --- a/examples/gallery/main.qml +++ b/examples/gallery/main.qml @@ -226,6 +226,15 @@ ApplicationWindow { shortcut: "Ctrl+E,Shift+Ctrl+X" enabled: false } + MenuItem { + text: "Not Even There" + shortcut: "Ctrl+E,Shift+Ctrl+Y" + visible: false + } + Menu { + text: "Me Neither" + visible: false + } } } diff --git a/src/controls/Menu.qml b/src/controls/Menu.qml index ef406caa11de55830d3b69aea6986954d1a23f2a..b4ba2e9647d0fcb2d76aa76c3360eed165416aaf 100644 --- a/src/controls/Menu.qml +++ b/src/controls/Menu.qml @@ -247,7 +247,9 @@ MenuPrivate { property int menuItemIndex: index sourceComponent: menuFrameLoader.menuItemStyle - enabled: !isSeparator && !!menuItem && menuItem.enabled + enabled: visible && !isSeparator && !!menuItem && menuItem.enabled + visible: menuItem.visible + active: visible function showSubMenu(immediately) { if (immediately) { diff --git a/src/controls/qtmenuitem.cpp b/src/controls/qtmenuitem.cpp index 124ba4c81d6c566a9f9f9f10480d0508c401ec9d..bf2248d1684849ca540815e459686f635d91e29c 100644 --- a/src/controls/qtmenuitem.cpp +++ b/src/controls/qtmenuitem.cpp @@ -66,6 +66,10 @@ void QtMenuBase::setVisible(bool v) { if (v != m_visible) { m_visible = v; + + if (m_platformItem) + m_platformItem->setVisible(m_visible); + emit visibleChanged(); } }