Skip to content

Commit ba1de8b

Browse files
committedOct 29, 2015
Fix crash when deleting last node in a geometry (fix #13674)
1 parent 93facfd commit ba1de8b

File tree

2 files changed

+16
-1
lines changed

2 files changed

+16
-1
lines changed
 

‎src/app/nodetool/qgsmaptoolnodetool.cpp

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -539,7 +539,15 @@ void QgsMapToolNodeTool::keyPressEvent( QKeyEvent* e )
539539
return;
540540

541541
mSelectedFeature->deleteSelectedVertexes();
542-
safeSelectVertex( firstSelectedIndex );
542+
543+
if ( mSelectedFeature->geometry()->isEmpty() )
544+
{
545+
emit messageEmitted( tr( "Geometry has been cleared. Use the add part tool to set geometry for this feature." ) );
546+
}
547+
else
548+
{
549+
safeSelectVertex( firstSelectedIndex );
550+
}
543551
mCanvas->refresh();
544552

545553
// Override default shortcut management in MapCanvas

‎src/core/qgsvectorlayereditutils.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,13 @@ bool QgsVectorLayerEditUtils::deleteVertex( QgsFeatureId atFeatureId, int atVert
103103
if ( !geometry.deleteVertex( atVertex ) )
104104
return false;
105105

106+
if ( geometry.geometry() && geometry.geometry()->nCoordinates() == 0 )
107+
{
108+
//last vertex deleted, set geometry to null
109+
geometry.setGeometry( 0 );
110+
}
111+
112+
106113
L->editBuffer()->changeGeometry( atFeatureId, &geometry );
107114
return true;
108115
}

0 commit comments

Comments
 (0)
Please sign in to comment.