[QGIS Commit] r15094 - trunk/qgis/src/app

svn_qgis at osgeo.org svn_qgis at osgeo.org
Fri Jan 28 10:01:13 EST 2011


Author: timlinux
Date: 2011-01-28 07:01:13 -0800 (Fri, 28 Jan 2011)
New Revision: 15094

Modified:
   trunk/qgis/src/app/qgisapp.cpp
Log:
Applied patch from #3447. Button group for add layer

Modified: trunk/qgis/src/app/qgisapp.cpp
===================================================================
--- trunk/qgis/src/app/qgisapp.cpp	2011-01-28 10:50:34 UTC (rev 15093)
+++ trunk/qgis/src/app/qgisapp.cpp	2011-01-28 15:01:13 UTC (rev 15094)
@@ -1682,15 +1682,47 @@
   mLayerToolBar = addToolBar( tr( "Manage Layers" ) );
   mLayerToolBar->setIconSize( myIconSize );
   mLayerToolBar->setObjectName( "LayerToolBar" );
-  mLayerToolBar->addAction( mActionAddOgrLayer );
-  mLayerToolBar->addAction( mActionAddRasterLayer );
+
+  QToolButton *bt = new QToolButton( mLayerToolBar );
+  bt->setObjectName( "AddLayer" );
+  bt->setPopupMode( QToolButton::MenuButtonPopup );
+  bt->addAction( mActionAddOgrLayer );
+  bt->addAction( mActionAddRasterLayer );
 #ifdef HAVE_POSTGRESQL
-  mLayerToolBar->addAction( mActionAddPgLayer );
+  bt->addAction( mActionAddPgLayer );
 #endif
 #ifdef HAVE_SPATIALITE
-  mLayerToolBar->addAction( mActionAddSpatiaLiteLayer );
+  bt->addAction( mActionAddSpatiaLiteLayer );
 #endif
-  mLayerToolBar->addAction( mActionAddWmsLayer );
+  bt->addAction( mActionAddWmsLayer );
+
+  QSettings settings;
+  switch ( settings.value( "/UI/addLayer", 0 ).toInt() )
+  {
+    default:
+    case 0:
+      bt->setDefaultAction( mActionAddOgrLayer );
+      break;
+
+    case 1:
+      bt->setDefaultAction( mActionAddRasterLayer );
+      break;
+
+    case 2:
+      bt->setDefaultAction( mActionAddPgLayer );
+      break;
+
+    case 3:
+      bt->setDefaultAction( mActionAddSpatiaLiteLayer );
+      break;
+
+    case 4:
+      bt->setDefaultAction( mActionAddWmsLayer );
+      break;
+  }
+  mLayerToolBar->addWidget( bt );
+  connect( bt, SIGNAL( triggered( QAction * ) ), this, SLOT( toolButtonActionTriggered( QAction * ) ) );
+
   mLayerToolBar->addAction( mActionNewVectorLayer );
   mLayerToolBar->addAction( mActionRemoveLayer );
   //commented out for QGIS 1.4 by Tim
@@ -1762,7 +1794,7 @@
   mAttributesToolBar->setObjectName( "Attributes" );
   mAttributesToolBar->addAction( mActionIdentify );
 
-  QToolButton *bt = new QToolButton( mAttributesToolBar );
+  bt = new QToolButton( mAttributesToolBar );
   bt->setObjectName( "SelectTool" );
   bt->setPopupMode( QToolButton::MenuButtonPopup );
   bt->addAction( mActionSelect );
@@ -1771,7 +1803,6 @@
   bt->addAction( mActionSelectFreehand );
   bt->addAction( mActionSelectRadius );
 
-  QSettings settings;
   switch ( settings.value( "/UI/selectTool", 0 ).toInt() )
   {
     default:
@@ -7337,6 +7368,16 @@
     settings.setValue( "/UI/annotationTool", 1 );
   else if ( action == mActionAnnotation )
     settings.setValue( "/UI/annotationTool", 2 );
+  else if ( action == mActionAddOgrLayer )
+    settings.setValue( "/UI/addLayer", 0 );
+  else if ( action == mActionAddRasterLayer )
+    settings.setValue( "/UI/addLayer", 1 );
+  else if ( action == mActionAddPgLayer )
+    settings.setValue( "/UI/addLayer", 2 );
+  else if ( action == mActionAddSpatiaLiteLayer )
+    settings.setValue( "/UI/addLayer", 3 );
+  else if ( action == mActionAddWmsLayer )
+    settings.setValue( "/UI/addLayer", 4 );
 
   bt->setDefaultAction( action );
 }



More information about the QGIS-commit mailing list