diff --git a/python/plugins/GdalTools/GdalTools.py b/python/plugins/GdalTools/GdalTools.py index d5d9893abe02..914233c61b2c 100644 --- a/python/plugins/GdalTools/GdalTools.py +++ b/python/plugins/GdalTools/GdalTools.py @@ -264,11 +264,6 @@ def initGui( self ): 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 3d340accf0f7..c0cb5d2e5cbe 100644 --- a/src/app/qgisapp.cpp +++ b/src/app/qgisapp.cpp @@ -928,6 +928,12 @@ void QgisApp::createActions() connect( mActionCustomization, SIGNAL( triggered() ), this, SLOT( customize() ) ); #ifdef Q_WS_MAC + // copy of Options action that gets moved to app Preferences... + mActionOptionsMac = new QAction( mActionOptions->text(), this ); + mActionOptionsMac->setMenuRole( QAction::NoRole ); + mActionOptionsMac->setIcon( mActionOptions->icon() ); + connect( mActionOptionsMac, SIGNAL( triggered() ), this, SLOT( options() ) ); + // Window Menu Items mActionWindowMinimize = new QAction( tr( "Minimize" ), this ); @@ -1158,9 +1164,12 @@ void QgisApp::createMenus() } #ifdef Q_WS_MAC + // copy back the Options action after assigned to app Preferences... + mSettingsMenu->addAction( mActionOptionsMac ); + // Window Menu - mWindowMenu = menuBar()->addMenu( tr( "&Window" ) ); + mWindowMenu = new QMenu( tr( "Window" ), this ); mWindowMenu->addAction( mActionWindowMinimize ); mWindowMenu->addAction( mActionWindowZoom ); @@ -1168,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 @@ -5784,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; @@ -5846,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; diff --git a/src/app/qgisapp.h b/src/app/qgisapp.h index ba853fb66cd1..241972efe4d1 100644 --- a/src/app/qgisapp.h +++ b/src/app/qgisapp.h @@ -978,6 +978,7 @@ class QgisApp : public QMainWindow, private Ui::MainWindow // actions for menus and toolbars ----------------- #ifdef Q_WS_MAC + QAction *mActionOptionsMac; QAction *mActionWindowMinimize; QAction *mActionWindowZoom; QAction *mActionWindowSeparator1; diff --git a/src/ui/qgisapp.ui b/src/ui/qgisapp.ui index 16514b81ceb8..762f32c981ec 100644 --- a/src/ui/qgisapp.ui +++ b/src/ui/qgisapp.ui @@ -1378,6 +1378,9 @@ Configure shortcuts... + + QAction::NoRole +