From 655672e21fe14ca046d4d73eacb09e002d25912c Mon Sep 17 00:00:00 2001
From: Jens Bache-Wiig <jens.bache-wiig@digia.com>
Date: Sun, 4 Nov 2012 23:29:03 +0100
Subject: [PATCH] Fix menubar on mac

This is not a complete solution but enough for at least
a useful demonstration :)

Change-Id: I86b944a6d894d5db63163850fbb092cc290bc8ea
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
---
 imports/QtDesktop/ApplicationWindow.qml | 8 ++++++++
 src/qtmenubar.cpp                       | 9 +--------
 2 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/imports/QtDesktop/ApplicationWindow.qml b/imports/QtDesktop/ApplicationWindow.qml
index f692fa25e..b66b47fae 100644
--- a/imports/QtDesktop/ApplicationWindow.qml
+++ b/imports/QtDesktop/ApplicationWindow.qml
@@ -46,6 +46,7 @@ Window {
     width: 320
     height: 240
 
+    property alias menuBar: menuBarArea.data
     property alias toolBar: toolBarArea.data
     property alias statusBar: statusBarArea.data
     default property alias data: contentArea.data
@@ -58,6 +59,13 @@ Window {
         color: syspal.button
     }
 
+    Column {
+        id: menuBarArea
+        anchors.top: parent.top
+        anchors.left: parent.left
+        anchors.right: parent.right
+    }
+
 
     Column {
         id: toolBarArea
diff --git a/src/qtmenubar.cpp b/src/qtmenubar.cpp
index 9d712bb8e..ffbaec05e 100644
--- a/src/qtmenubar.cpp
+++ b/src/qtmenubar.cpp
@@ -45,7 +45,7 @@
 #include <QtWidgets/QMenuBar>
 
 QtMenuBar::QtMenuBar(QQuickItem *parent)
-    : QQuickItem(parent), _menuBar(0) /*, _menuBar(new QMenuBar)*/
+    : QQuickItem(parent), _menuBar(new QMenuBar)
 {
     connect(this, SIGNAL(parentChanged(QQuickItem *)), this, SLOT(updateParent(QQuickItem *)));
     setFlag(QQuickItem::ItemHasContents, false);
@@ -62,17 +62,10 @@ QQmlListProperty<QtMenu> QtMenuBar::menus()
 
 void QtMenuBar::updateParent(QQuickItem *newParent)
 {
-    if (QWindowItem* window = qobject_cast<QWindowItem*>(parent()))
-        _menuBar = window->window()->menuBar();
-
-    //THIS IS WRONG... WE NEED TO DO THAT DIFFERENT!
     _menuBar->clear();
-
     foreach (QtMenu *menu, m_menus) {
         _menuBar->addMenu(menu->qmenu());
     }
-    //THIS IS WRONG... WE NEED TO DO THAT DIFFERENT!
-
 }
 
 void QtMenuBar::append_menu(QQmlListProperty<QtMenu> *list, QtMenu *menu)
-- 
GitLab