2424#include " qgstolerance.h"
2525#include " qgsvectorlayer.h"
2626#include " qgsvectorlayertools.h"
27-
27+ # include " qgssnapindicator.h "
2828
2929#include < QMessageBox>
3030#include < QMouseEvent>
3434
3535QgsMapToolMoveFeature::QgsMapToolMoveFeature ( QgsMapCanvas *canvas, MoveMode mode )
3636 : QgsMapToolAdvancedDigitizing( canvas, QgisApp::instance()->cadDockWidget() )
37+ , mSnapIndicator( qgis::make_unique< QgsSnapIndicator>( canvas ) )
3738 , mMode( mode )
3839{
3940 mToolName = tr ( " Move feature" );
@@ -54,6 +55,7 @@ void QgsMapToolMoveFeature::cadCanvasMoveEvent( QgsMapMouseEvent *e )
5455 mRubberBand ->setTranslationOffset ( offsetX, offsetY );
5556 mRubberBand ->updatePosition ();
5657 mRubberBand ->update ();
58+ mSnapIndicator ->setMatch ( e->mapPointMatch () );
5759 }
5860}
5961
@@ -64,6 +66,7 @@ void QgsMapToolMoveFeature::cadCanvasReleaseEvent( QgsMapMouseEvent *e )
6466 {
6567 delete mRubberBand ;
6668 mRubberBand = nullptr ;
69+ mSnapIndicator ->setMatch ( QgsPointLocator::Match () );
6770 cadDockWidget ()->clear ();
6871 notifyNotEditableLayer ();
6972 return ;
@@ -152,6 +155,7 @@ void QgsMapToolMoveFeature::cadCanvasReleaseEvent( QgsMapMouseEvent *e )
152155 mMovedFeatures .clear ();
153156 delete mRubberBand ;
154157 mRubberBand = nullptr ;
158+ mSnapIndicator ->setMatch ( QgsPointLocator::Match () );
155159 return ;
156160 }
157161 }
@@ -170,6 +174,7 @@ void QgsMapToolMoveFeature::cadCanvasReleaseEvent( QgsMapMouseEvent *e )
170174 cadDockWidget ()->clear ();
171175 delete mRubberBand ;
172176 mRubberBand = nullptr ;
177+ mSnapIndicator ->setMatch ( QgsPointLocator::Match () );
173178 return ;
174179 }
175180
@@ -190,6 +195,7 @@ void QgsMapToolMoveFeature::cadCanvasReleaseEvent( QgsMapMouseEvent *e )
190195 }
191196 delete mRubberBand ;
192197 mRubberBand = nullptr ;
198+ mSnapIndicator ->setMatch ( QgsPointLocator::Match () );
193199 cadDockWidget ()->clear ();
194200 break ;
195201
@@ -202,6 +208,7 @@ void QgsMapToolMoveFeature::cadCanvasReleaseEvent( QgsMapMouseEvent *e )
202208 emit messageEmitted ( *errorMsg, Qgis::Critical );
203209 delete mRubberBand ;
204210 mRubberBand = nullptr ;
211+ mSnapIndicator ->setMatch ( QgsPointLocator::Match () );
205212 }
206213 break ;
207214 }
@@ -216,6 +223,7 @@ void QgsMapToolMoveFeature::deactivate()
216223 // delete rubber band
217224 delete mRubberBand ;
218225 mRubberBand = nullptr ;
226+ mSnapIndicator ->setMatch ( QgsPointLocator::Match () );
219227
220228 QgsMapTool::deactivate ();
221229}
@@ -227,5 +235,6 @@ void QgsMapToolMoveFeature::keyReleaseEvent( QKeyEvent *e )
227235 cadDockWidget ()->clear ();
228236 delete mRubberBand ;
229237 mRubberBand = nullptr ;
238+ mSnapIndicator ->setMatch ( QgsPointLocator::Match () );
230239 }
231240}
0 commit comments