Skip to content

Commit 01ca203

Browse files
committedNov 25, 2021
Cleanup group layers when groups are removed
1 parent f91ace8 commit 01ca203

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed
 

‎src/app/qgisapp.cpp

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12180,7 +12180,7 @@ void QgisApp::removeLayer()
1218012180
return;
1218112181
}
1218212182

12183-
QList<QgsLayerTreeNode *> selectedNodes = mLayerTreeView->selectedNodes( true );
12183+
const QList<QgsLayerTreeNode *> selectedNodes = mLayerTreeView->selectedNodes( true );
1218412184

1218512185
//validate selection
1218612186
if ( selectedNodes.isEmpty() )
@@ -12221,7 +12221,7 @@ void QgisApp::removeLayer()
1222112221
}
1222212222
};
1222312223

12224-
for ( const auto &n : std::as_const( selectedNodes ) )
12224+
for ( const QgsLayerTreeNode *n : selectedNodes )
1222512225
{
1222612226
harvest( n );
1222712227
}
@@ -12243,9 +12243,15 @@ void QgisApp::removeLayer()
1224312243
return;
1224412244
}
1224512245

12246-
const auto constSelectedNodes = selectedNodes;
12247-
for ( QgsLayerTreeNode *node : constSelectedNodes )
12246+
for ( QgsLayerTreeNode *node : selectedNodes )
1224812247
{
12248+
if ( QgsLayerTreeGroup *group = qobject_cast< QgsLayerTreeGroup * >( node ) )
12249+
{
12250+
if ( QgsGroupLayer *groupLayer = group->groupLayer() )
12251+
{
12252+
QgsProject::instance()->removeMapLayer( groupLayer );
12253+
}
12254+
}
1224912255
QgsLayerTreeGroup *parentGroup = qobject_cast<QgsLayerTreeGroup *>( node->parent() );
1225012256
if ( parentGroup )
1225112257
parentGroup->removeChildNode( node );

0 commit comments

Comments
 (0)
Please sign in to comment.