summaryrefslogtreecommitdiffstats
path: root/src/plugins
diff options
context:
space:
mode:
authorAndy Shaw <andy.shaw@digia.com>2012-09-28 15:58:58 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2012-10-26 14:53:09 +0200
commit356f3c89b83704591e3c37cf8c322b52d6840763 (patch)
tree05b381f1d5c4086516fa42947ab7937b422fd34e /src/plugins
parenta3941c2f6ef31986bd315fa41bc4df7330a89109 (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.h1
-rw-r--r--src/plugins/platforms/cocoa/qcocoamenu.mm6
-rw-r--r--src/plugins/platforms/cocoa/qcocoamenuitem.mm2
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;