@@ -2315,13 +2315,14 @@ void QgisApp::initLayerTreeView()
23152315
23162316 mLayerTreeView ->setModel ( model );
23172317 mLayerTreeView ->setMenuProvider ( new QgsAppLayerTreeViewMenuProvider ( mLayerTreeView , mMapCanvas ) );
2318- mLayerTreeView ->setAutoSelectAddedLayers ( true );
23192318
23202319 setupLayerTreeViewFromSettings ();
23212320
23222321 connect ( mLayerTreeView , SIGNAL ( doubleClicked ( QModelIndex ) ), this , SLOT ( layerTreeViewDoubleClicked ( QModelIndex ) ) );
23232322 connect ( mLayerTreeView , SIGNAL ( currentLayerChanged ( QgsMapLayer* ) ), this , SLOT ( activeLayerChanged ( QgsMapLayer* ) ) );
23242323 connect ( mLayerTreeView ->selectionModel (), SIGNAL ( currentChanged ( QModelIndex, QModelIndex ) ), this , SLOT ( updateNewLayerInsertionPoint () ) );
2324+ connect ( QgsProject::instance ()->layerTreeRegistryBridge (), SIGNAL ( addedLayersToLayerTree ( QList<QgsMapLayer*> ) ),
2325+ this , SLOT ( autoSelectAddedLayer ( QList<QgsMapLayer*> ) ) );
23252326
23262327 // add group tool button
23272328 QToolButton* btnAddGroup = new QToolButton;
@@ -2447,6 +2448,15 @@ void QgisApp::updateNewLayerInsertionPoint()
24472448 QgsProject::instance ()->layerTreeRegistryBridge ()->setLayerInsertionPoint ( parentGroup, index );
24482449}
24492450
2451+ void QgisApp::autoSelectAddedLayer ( QList<QgsMapLayer*> layers )
2452+ {
2453+ if ( layers.count () )
2454+ {
2455+ QgsLayerTreeLayer* nodeLayer = QgsProject::instance ()->layerTreeRoot ()->findLayer ( layers[0 ]->id () );
2456+ QModelIndex index = mLayerTreeView ->layerTreeModel ()->node2index ( nodeLayer );
2457+ mLayerTreeView ->setCurrentIndex ( index );
2458+ }
2459+ }
24502460
24512461void QgisApp::createMapTips ()
24522462{
@@ -3782,7 +3792,6 @@ void QgisApp::enableProjectMacros()
37823792 QgsPythonRunner::run ( " qgis.utils.reloadProjectMacros()" );
37833793}
37843794
3785-
37863795/* *
37873796 adds a saved project to qgis, usually called on startup by specifying a
37883797 project file on the command line
@@ -3798,11 +3807,6 @@ bool QgisApp::addProject( QString projectFile )
37983807 // close the previous opened project if any
37993808 closeProject ();
38003809
3801- // temporarily disable auto-select for project loading
3802- // (having it on all the time would give inconsistent results,
3803- // e.g. we select the first node if it is a layer, but not if it is a group)
3804- mLayerTreeView ->setAutoSelectAddedLayers ( false );
3805-
38063810 if ( ! QgsProject::instance ()->read ( projectFile ) )
38073811 {
38083812 QApplication::restoreOverrideCursor ();
@@ -3818,8 +3822,6 @@ bool QgisApp::addProject( QString projectFile )
38183822 return false ;
38193823 }
38203824
3821- mLayerTreeView ->setAutoSelectAddedLayers ( true );
3822-
38233825 setTitleBarText_ ( *this );
38243826 int myRedInt = QgsProject::instance ()->readNumEntry ( " Gui" , " /CanvasColorRedPart" , 255 );
38253827 int myGreenInt = QgsProject::instance ()->readNumEntry ( " Gui" , " /CanvasColorGreenPart" , 255 );
0 commit comments