diff --git a/src/app/vertextool/qgsvertextool.cpp b/src/app/vertextool/qgsvertextool.cpp index 45639417ed1..4ba25e895e8 100644 --- a/src/app/vertextool/qgsvertextool.cpp +++ b/src/app/vertextool/qgsvertextool.cpp @@ -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() ); } + +void QgsVertexTool::cleanEditor( QgsFeatureId id ) +{ + if ( mSelectedFeature.get() && mSelectedFeature.get()->featureId() == id ) + { + cleanupVertexEditor(); + }; +} diff --git a/src/app/vertextool/qgsvertextool.h b/src/app/vertextool/qgsvertextool.h index a0f089184c8..fd6d50b7169 100644 --- a/src/app/vertextool/qgsvertextool.h +++ b/src/app/vertextool/qgsvertextool.h @@ -97,6 +97,8 @@ class APP_EXPORT QgsVertexTool : public QgsMapToolAdvancedDigitizing void startRangeVertexSelection(); + void cleanEditor( QgsFeatureId id ); + private: void buildDragBandsForVertices( const QSet &movingVertices, const QgsPointXY &dragVertexMapPoint );