@@ -2808,7 +2808,7 @@ void QgisApp::setupConnections()
28082808 this , SLOT ( markDirty () ) );
28092809 connect ( mLayerTreeView ->layerTreeModel ()->rootGroup (), SIGNAL ( removedChildren ( QgsLayerTreeNode*, int , int ) ),
28102810 this , SLOT ( updateNewLayerInsertionPoint () ) );
2811- connect ( mLayerTreeView ->layerTreeModel ()->rootGroup (), SIGNAL ( visibilityChanged ( QgsLayerTreeNode*, Qt::CheckState ) ),
2811+ connect ( mLayerTreeView ->layerTreeModel ()->rootGroup (), SIGNAL ( visibilityChanged ( QgsLayerTreeNode* ) ),
28122812 this , SLOT ( markDirty () ) );
28132813 connect ( mLayerTreeView ->layerTreeModel ()->rootGroup (), SIGNAL ( customPropertyChanged ( QgsLayerTreeNode*, QString ) ),
28142814 this , SLOT ( markDirty () ) );
@@ -5759,19 +5759,16 @@ void QgisApp::stopRendering()
57595759void QgisApp::hideAllLayers ()
57605760{
57615761 QgsDebugMsg ( " hiding all layers!" );
5762+ mLayerTreeView ->layerTreeModel ()->rootGroup ()->setItemVisibilityCheckedRecursive ( false );
57625763
5763- Q_FOREACH ( QgsLayerTreeLayer* nodeLayer, mLayerTreeView ->layerTreeModel ()->rootGroup ()->findLayers () )
5764- nodeLayer->setVisible ( Qt::Unchecked );
57655764}
57665765
57675766
57685767// reimplements method from base (gui) class
57695768void QgisApp::showAllLayers ()
57705769{
57715770 QgsDebugMsg ( " Showing all layers!" );
5772-
5773- Q_FOREACH ( QgsLayerTreeLayer* nodeLayer, mLayerTreeView ->layerTreeModel ()->rootGroup ()->findLayers () )
5774- nodeLayer->setVisible ( Qt::Checked );
5771+ mLayerTreeView ->layerTreeModel ()->rootGroup ()->setItemVisibilityCheckedRecursive ( true );
57755772}
57765773
57775774// reimplements method from base (gui) class
@@ -5781,10 +5778,7 @@ void QgisApp::hideSelectedLayers()
57815778
57825779 Q_FOREACH ( QgsLayerTreeNode* node, mLayerTreeView ->selectedNodes () )
57835780 {
5784- if ( QgsLayerTree::isGroup ( node ) )
5785- QgsLayerTree::toGroup ( node )->setVisible ( Qt::Unchecked );
5786- else if ( QgsLayerTree::isLayer ( node ) )
5787- QgsLayerTree::toLayer ( node )->setVisible ( Qt::Unchecked );
5781+ node->setItemVisibilityChecked ( false );
57885782 }
57895783}
57905784
@@ -5796,7 +5790,7 @@ void QgisApp::hideDeselectedLayers()
57965790 {
57975791 if ( selectedLayerNodes.contains ( nodeLayer ) )
57985792 continue ;
5799- nodeLayer->setVisible ( Qt::Unchecked );
5793+ nodeLayer->setItemVisibilityChecked ( false );
58005794 }
58015795}
58025796
@@ -5807,10 +5801,12 @@ void QgisApp::showSelectedLayers()
58075801
58085802 Q_FOREACH ( QgsLayerTreeNode* node, mLayerTreeView ->selectedNodes () )
58095803 {
5810- if ( QgsLayerTree::isGroup ( node ) )
5811- QgsLayerTree::toGroup ( node )->setVisible ( Qt::Checked );
5812- else if ( QgsLayerTree::isLayer ( node ) )
5813- QgsLayerTree::toLayer ( node )->setVisible ( Qt::Checked );
5804+ QgsLayerTreeNode* nodeIter = node;
5805+ while ( nodeIter )
5806+ {
5807+ nodeIter->setItemVisibilityChecked ( true );
5808+ nodeIter = nodeIter->parent ();
5809+ }
58145810 }
58155811}
58165812
@@ -8373,7 +8369,7 @@ void QgisApp::layerSubsetString()
83738369 // hide the old layer
83748370 QgsLayerTreeLayer* vLayerTreeLayer = QgsProject::instance ()->layerTreeRoot ()->findLayer ( vlayer->id () );
83758371 if ( vLayerTreeLayer )
8376- vLayerTreeLayer->setVisible ( Qt::Unchecked );
8372+ vLayerTreeLayer->setItemVisibilityChecked ( false );
83778373 vlayer = newLayer;
83788374 }
83798375 else
@@ -8663,7 +8659,7 @@ void QgisApp::duplicateLayers( const QList<QgsMapLayer *>& lyrList )
86638659 QgsLayerTreeLayer* nodeDupLayer = parentGroup->insertLayer ( parentGroup->children ().indexOf ( nodeSelectedLyr ) + 1 , dupLayer );
86648660
86658661 // always set duplicated layers to not visible so layer can be configured before being turned on
8666- nodeDupLayer->setVisible ( Qt::Unchecked );
8662+ nodeDupLayer->setItemVisibilityChecked ( false );
86678663
86688664 // duplicate the layer style
86698665 QString errMsg;
0 commit comments