@@ -86,15 +86,18 @@ void QgsMapToolNodeTool::canvasMapPressEvent( QgsMapMouseEvent* e )
86
86
// remove previous warning
87
87
emit messageDiscarded ();
88
88
89
- delete mSelectedFeature ;
90
- mSelectedFeature = new QgsSelectedFeature ( snapResults[0 ].snappedAtGeometry , vlayer, mCanvas );
91
- connect ( QgisApp::instance ()->layerTreeView (), SIGNAL ( currentLayerChanged ( QgsMapLayer* ) ), this , SLOT ( currentLayerChanged ( QgsMapLayer* ) ) );
92
- connect ( mSelectedFeature , SIGNAL ( destroyed () ), this , SLOT ( selectedFeatureDestroyed () ) );
93
- connect ( mSelectedFeature , SIGNAL ( lastVertexChanged ( const QgsPointV2& ) ), this , SLOT ( changeLastVertex ( const QgsPointV2& ) ) );
94
- connect ( vlayer, SIGNAL ( editingStopped () ), this , SLOT ( editingToggled () ) );
95
- mIsPoint = vlayer->geometryType () == QGis::Point ;
96
- mNodeEditor = new QgsNodeEditor ( vlayer, mSelectedFeature , mCanvas );
97
- QgisApp::instance ()->addDockWidget ( Qt::LeftDockWidgetArea, mNodeEditor );
89
+ if ( !mSelectedFeature || snapResults[0 ].snappedAtGeometry != mSelectedFeature ->featureId () )
90
+ {
91
+ delete mSelectedFeature ;
92
+ mSelectedFeature = new QgsSelectedFeature ( snapResults[0 ].snappedAtGeometry , vlayer, mCanvas );
93
+ connect ( QgisApp::instance ()->layerTreeView (), SIGNAL ( currentLayerChanged ( QgsMapLayer* ) ), this , SLOT ( currentLayerChanged ( QgsMapLayer* ) ) );
94
+ connect ( mSelectedFeature , SIGNAL ( destroyed () ), this , SLOT ( selectedFeatureDestroyed () ) );
95
+ connect ( mSelectedFeature , SIGNAL ( lastVertexChanged ( const QgsPointV2& ) ), this , SLOT ( changeLastVertex ( const QgsPointV2& ) ) );
96
+ connect ( vlayer, SIGNAL ( editingStopped () ), this , SLOT ( editingToggled () ) );
97
+ mIsPoint = vlayer->geometryType () == QGis::Point ;
98
+ mNodeEditor = new QgsNodeEditor ( vlayer, mSelectedFeature , mCanvas );
99
+ QgisApp::instance ()->addDockWidget ( Qt::LeftDockWidgetArea, mNodeEditor );
100
+ }
98
101
}
99
102
100
103
// select or move vertices if selected feature has not been changed
0 commit comments