Skip to content

Commit a7e5b92

Browse files
author
wonder
committedNov 9, 2009
fixed newly introduced segfault on removing layers from legend (#2073)
git-svn-id: http://svn.osgeo.org/qgis/trunk/qgis@12059 c8812cc2-4d05-0410-92ff-de0c093fc19c
1 parent dc1e2b2 commit a7e5b92

File tree

4 files changed

+5
-10
lines changed

4 files changed

+5
-10
lines changed
 

‎src/app/legend/qgslegend.cpp

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -583,15 +583,15 @@ void QgsLegend::legendGroupRemove()
583583
while ( child )
584584
{
585585
setCurrentItem( child );
586-
legendLayerRemove();
586+
removeCurrentLayer();
587587
child = lg->child( 0 );
588588
}
589589
delete lg;
590590
adjustIconSize();
591591
}
592592
}
593593

594-
void QgsLegend::legendLayerRemove()
594+
void QgsLegend::removeCurrentLayer()
595595
{
596596
if ( !mMapCanvas || mMapCanvas->isDrawing() )
597597
{
@@ -605,12 +605,7 @@ void QgsLegend::legendLayerRemove()
605605

606606
removeLayer( ll->layer(), true );
607607

608-
mStateOfCheckBoxes.erase( ll );
609-
removeItem( ll );
610-
delete ll;
611-
612608
adjustIconSize();
613-
614609
}
615610

616611
bool QgsLegend::removeLayer( QgsMapLayer* ml, bool askCancelOnEditable )

‎src/app/legend/qgslegend.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ class QgsLegend : public QTreeWidget
210210
void writeProject( QDomDocument & );
211211

212212
/**Removes the current LegendLayer*/
213-
void legendLayerRemove();
213+
void removeCurrentLayer();
214214

215215
/**Removes a layer. If the layer is editable, a dialog is shown where user can select 'save', 'discard' and optionally 'cancel'. Cancel
216216
is useful if a single layer is removed whereas on closing of the whole project or application, the cancel option may not be possible

‎src/app/legend/qgslegendlayer.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -376,7 +376,7 @@ void QgsLegendLayer::addToPopupMenu( QMenu& theMenu, QAction* toggleEditingActio
376376

377377
// remove from canvas
378378
theMenu.addAction( QgisApp::getThemeIcon( "/mActionRemove.png" ),
379-
tr( "&Remove" ), legend(), SLOT( legendLayerRemove() ) );
379+
tr( "&Remove" ), legend(), SLOT( removeCurrentLayer() ) );
380380

381381
theMenu.addSeparator();
382382

‎src/app/qgisapp.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4769,7 +4769,7 @@ void QgisApp::isInOverview()
47694769

47704770
void QgisApp::removeLayer()
47714771
{
4772-
mMapLegend->legendLayerRemove();
4772+
mMapLegend->removeCurrentLayer();
47734773
// notify the project we've made a change
47744774
QgsProject::instance()->dirty( true );
47754775
}

0 commit comments

Comments
 (0)