Skip to content
Permalink
Browse files

Fixes #17576 Avoid crash during node editor cleanup

  • Loading branch information
pblottiere committed Feb 16, 2018
1 parent 0310c1d commit 45ca0eb52b4666da5f2572b01dd947996434e67e
Showing with 11 additions and 1 deletion.
  1. +9 −1 src/app/vertextool/qgsvertextool.cpp
  2. +2 −0 src/app/vertextool/qgsvertextool.h
@@ -984,7 +984,7 @@ void QgsVertexTool::showVertexEditor() //#spellok
mVertexEditor.reset( new QgsVertexEditor( m.layer(), mSelectedFeature.get(), mCanvas ) );
QgisApp::instance()->addDockWidget( Qt::LeftDockWidgetArea, mVertexEditor.get() );
connect( mVertexEditor.get(), &QgsVertexEditor::deleteSelectedRequested, this, &QgsVertexTool::deleteVertexEditorSelection );
connect( mSelectedFeature.get()->vlayer(), &QgsVectorLayer::featureDeleted, this, [ = ]( QgsFeatureId id ) { if ( mSelectedFeature.get()->featureId() == id ) cleanupVertexEditor(); } );
connect( mSelectedFeature.get()->vlayer(), &QgsVectorLayer::featureDeleted, this, &QgsVertexTool::cleanEditor );
}

void QgsVertexTool::cleanupVertexEditor()
@@ -2161,3 +2161,11 @@ void QgsVertexTool::stopRangeVertexSelection()
mSelectionMethod = SelectionNormal;
setHighlightedVertices( QList<Vertex>() );
}

void QgsVertexTool::cleanEditor( QgsFeatureId id )
{
if ( mSelectedFeature.get() && mSelectedFeature.get()->featureId() == id )
{
cleanupVertexEditor();
};
}
@@ -97,6 +97,8 @@ class APP_EXPORT QgsVertexTool : public QgsMapToolAdvancedDigitizing

void startRangeVertexSelection();

void cleanEditor( QgsFeatureId id );

private:

void buildDragBandsForVertices( const QSet<Vertex> &movingVertices, const QgsPointXY &dragVertexMapPoint );

0 comments on commit 45ca0eb

Please sign in to comment.
You can’t perform that action at this time.