@@ -51,8 +51,7 @@ QgsMapToolCapture::QgsMapToolCapture( QgsMapCanvas* canvas, enum CaptureMode too
51
51
52
52
QgsMapToolCapture::~QgsMapToolCapture ()
53
53
{
54
- while ( !mSnappingMarkers .isEmpty () )
55
- delete mSnappingMarkers .takeFirst ();
54
+ delete mSnappingMarker ;
56
55
57
56
stopCapturing ();
58
57
@@ -65,8 +64,7 @@ QgsMapToolCapture::~QgsMapToolCapture()
65
64
66
65
void QgsMapToolCapture::deactivate ()
67
66
{
68
- while ( !mSnappingMarkers .isEmpty () )
69
- delete mSnappingMarkers .takeFirst ();
67
+ delete mSnappingMarker ;
70
68
71
69
QgsMapToolEdit::deactivate ();
72
70
}
@@ -107,18 +105,14 @@ void QgsMapToolCapture::canvasMoveEvent( QMouseEvent * e )
107
105
QList<QgsSnappingResult> snapResults;
108
106
if ( mSnapper .snapToBackgroundLayers ( e->pos (), snapResults ) == 0 )
109
107
{
110
- while ( !mSnappingMarkers .isEmpty () )
111
- delete mSnappingMarkers .takeFirst ();
108
+ delete mSnappingMarker ;
109
+
110
+ mSnappingMarker = new QgsVertexMarker ( mCanvas );
111
+ mSnappingMarker ->setIconType ( QgsVertexMarker::ICON_CROSS );
112
+ mSnappingMarker ->setColor ( Qt::magenta );
113
+ mSnappingMarker ->setPenWidth ( 3 );
114
+ mSnappingMarker ->setCenter ( snapPointFromResults (snapResults,e->pos ()) );
112
115
113
- foreach ( const QgsSnappingResult &r, snapResults )
114
- {
115
- QgsVertexMarker *m = new QgsVertexMarker ( mCanvas );
116
- m->setIconType ( QgsVertexMarker::ICON_CROSS );
117
- m->setColor ( Qt::magenta );
118
- m->setPenWidth ( 3 );
119
- m->setCenter ( r.snappedVertex );
120
- mSnappingMarkers << m;
121
- }
122
116
123
117
if ( mCaptureMode != CapturePoint && mTempRubberBand && mCapturing )
124
118
{
0 commit comments