summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/cocoa/qcocoamenuitem.mm
diff options
context:
space:
mode:
authorGabriel de Dietrich <gabriel.dedietrich@qt.io>2018-04-17 15:36:09 -0700
committerGabriel de Dietrich <gabriel.dedietrich@qt.io>2018-04-19 22:20:05 +0000
commit48defe41e1f6fb38800675922289dd7364fad8af (patch)
tree9d80b44c1b0097f9c52a3bbfccfb767ce96ed5dc /src/plugins/platforms/cocoa/qcocoamenuitem.mm
parent99290faa66eba7abe613d2d0df00e88434470f2e (diff)
Cocoa Menus: Allow separators in app menu
We extend QCocoaNSMenuItem with separator items capabilities and use it as any other custom item in the app menu. Addition and removal of items in the app menu remains very basic because that menu doesn't exist as such. Instead, it's hinted through the QAction's menu role. Change-Id: Ia13bfcc008c75e49fd21705d2528da5a85ed1c73 Task-number: QTBUG-63756 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Diffstat (limited to 'src/plugins/platforms/cocoa/qcocoamenuitem.mm')
-rw-r--r--src/plugins/platforms/cocoa/qcocoamenuitem.mm12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/plugins/platforms/cocoa/qcocoamenuitem.mm b/src/plugins/platforms/cocoa/qcocoamenuitem.mm
index bd8cab9b23..ee70e059a1 100644
--- a/src/plugins/platforms/cocoa/qcocoamenuitem.mm
+++ b/src/plugins/platforms/cocoa/qcocoamenuitem.mm
@@ -219,12 +219,11 @@ void QCocoaMenuItem::setNativeContents(WId item)
NSMenuItem *QCocoaMenuItem::sync()
{
- if (m_isSeparator != [m_native isSeparatorItem]) {
+ if (m_isSeparator != m_native.separatorItem) {
[m_native release];
- if (m_isSeparator) {
- m_native = [[NSMenuItem separatorItem] retain];
- [m_native setTag:reinterpret_cast<NSInteger>(this)];
- } else
+ if (m_isSeparator)
+ m_native = [[QCocoaNSMenuItem separatorItemWithPlatformMenuItem:this] retain];
+ else
m_native = nil;
}
@@ -435,6 +434,9 @@ void QCocoaMenuItem::setIconSize(int size)
void QCocoaMenuItem::resolveTargetAction()
{
+ if (m_native.separatorItem)
+ return;
+
// Some items created by QCocoaMenuLoader are not
// instances of QCocoaNSMenuItem and have their
// target/action set as Interface Builder would.