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
+