From 7f1a4e28d12e3fc2bd40d596a4f09138ed368f79 Mon Sep 17 00:00:00 2001 From: Larry Shaffer Date: Sun, 10 Jun 2012 16:12:58 -0600 Subject: [PATCH] Fix for #5753 Does not address third-party plugins that add their own menus. They should use (here for Python): menu_bar = self.iface.mainWindow().menuBar() menu_bar.insertMenu( self.iface.firstRightStandardMenu().menuAction(), self.my_plugins_menu ) Ideally, a new QgisInterface public slot pair of addMenuToMenuBar(QMenu)/removeMenuFromMenuBar(QMenu) should be added, to help plugin developers put their menus in the correct place. Deletion in GdalTools.py is redundant add-to-menu code. It moved the Raster menu to -1 on the menubar (between Window and Help on Mac). --- python/plugins/GdalTools/GdalTools.py | 5 ----- src/app/qgisapp.cpp | 9 ++++++--- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/python/plugins/GdalTools/GdalTools.py b/python/plugins/GdalTools/GdalTools.py index d5d9893abe0..914233c61b2 100644 --- a/python/plugins/GdalTools/GdalTools.py +++ b/python/plugins/GdalTools/GdalTools.py @@ -264,11 +264,6 @@ class GdalTools: QObject.connect( self.settings, SIGNAL( "triggered()" ), self.doSettings ) self.menu.addAction( self.settings ) - menu_bar = self.iface.mainWindow().menuBar() - actions = menu_bar.actions() - lastAction = actions[ len( actions ) - 1 ] - menu_bar.insertMenu( lastAction, self.menu ) - def unload( self ): if not valid: return pass diff --git a/src/app/qgisapp.cpp b/src/app/qgisapp.cpp index 8518078b10d..c0cb5d2e5cb 100644 --- a/src/app/qgisapp.cpp +++ b/src/app/qgisapp.cpp @@ -1169,7 +1169,7 @@ void QgisApp::createMenus() // Window Menu - mWindowMenu = menuBar()->addMenu( tr( "&Window" ) ); + mWindowMenu = new QMenu( tr( "Window" ), this ); mWindowMenu->addAction( mActionWindowMinimize ); mWindowMenu->addAction( mActionWindowZoom ); @@ -1177,6 +1177,9 @@ void QgisApp::createMenus() mWindowMenu->addAction( mActionWindowAllToFront ); mWindowMenu->addSeparator(); + + // insert before Help menu, as per Mac OS convention + menuBar()->insertMenu( mHelpMenu->menuAction(), mWindowMenu ); #endif // Database Menu @@ -5793,7 +5796,7 @@ void QgisApp::addPluginToDatabaseMenu( QString name, QAction* action ) before = actions.at( i ); break; } - else if ( actions.at( i )->menu() == mHelpMenu ) + else if ( actions.at( i )->menu() == firstRightStandardMenu() ) { before = actions.at( i ); break; @@ -5855,7 +5858,7 @@ void QgisApp::addPluginToWebMenu( QString name, QAction* action ) { if ( actions.at( i )->menu() == mWebMenu ) return; - if ( actions.at( i )->menu() == mHelpMenu ) + if ( actions.at( i )->menu() == firstRightStandardMenu() ) { before = actions.at( i ); break;