diff options
author | Andy Shaw <andy.shaw@digia.com> | 2012-09-28 15:58:58 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2012-10-26 14:53:09 +0200 |
commit | 356f3c89b83704591e3c37cf8c322b52d6840763 (patch) | |
tree | 05b381f1d5c4086516fa42947ab7937b422fd34e /src/plugins | |
parent | a3941c2f6ef31986bd315fa41bc4df7330a89109 (diff) |
Fix syncing of visibility and enabled for menus on Cocoa
Fixed menu handling on Cocoa so if a menu is enabled/disabled or made
visible or not then it will keep this in sync with the appropriate
native menu entry.
Change-Id: If269185fcf065fb1b2f60d6ef8c27c107eb4509f
Reviewed-by: Pasi Matilainen <pasi.matilainen@digia.com>
Reviewed-by: James Turner <james.turner@kdab.com>
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/platforms/cocoa/qcocoamenu.h | 1 | ||||
-rw-r--r-- | src/plugins/platforms/cocoa/qcocoamenu.mm | 6 | ||||
-rw-r--r-- | src/plugins/platforms/cocoa/qcocoamenuitem.mm | 2 |
3 files changed, 8 insertions, 1 deletions
diff --git a/src/plugins/platforms/cocoa/qcocoamenu.h b/src/plugins/platforms/cocoa/qcocoamenu.h index 38952a2e5d..3afe089225 100644 --- a/src/plugins/platforms/cocoa/qcocoamenu.h +++ b/src/plugins/platforms/cocoa/qcocoamenu.h @@ -70,6 +70,7 @@ public: void removeMenuItem(QPlatformMenuItem *menuItem); void syncMenuItem(QPlatformMenuItem *menuItem); void setEnabled(bool enabled); + void setVisible(bool visible); void syncSeparatorsCollapsible(bool enable); void syncModalState(bool modal); diff --git a/src/plugins/platforms/cocoa/qcocoamenu.mm b/src/plugins/platforms/cocoa/qcocoamenu.mm index 4d35b3202e..36d5c81f34 100644 --- a/src/plugins/platforms/cocoa/qcocoamenu.mm +++ b/src/plugins/platforms/cocoa/qcocoamenu.mm @@ -268,6 +268,12 @@ void QCocoaMenu::setParentItem(QCocoaMenuItem *item) void QCocoaMenu::setEnabled(bool enabled) { m_enabled = enabled; + syncModalState(!m_enabled); +} + +void QCocoaMenu::setVisible(bool visible) +{ + [m_nativeItem setSubmenu:(visible ? m_nativeMenu : nil)]; } QPlatformMenuItem *QCocoaMenu::menuItemAt(int position) const diff --git a/src/plugins/platforms/cocoa/qcocoamenuitem.mm b/src/plugins/platforms/cocoa/qcocoamenuitem.mm index 150d3eef7d..d78ff73bb6 100644 --- a/src/plugins/platforms/cocoa/qcocoamenuitem.mm +++ b/src/plugins/platforms/cocoa/qcocoamenuitem.mm @@ -263,7 +263,7 @@ NSMenuItem *QCocoaMenuItem::sync() // [m_native setHidden:YES]; // [m_native setHidden:NO]; [m_native setHidden: !m_isVisible]; - + [m_native setEnabled: m_enabled]; QString text = m_text; QKeySequence accel = m_shortcut; |