Skip to content

Commit 802dda1

Browse files
committed
Show snap vertex marker for offset curve
1 parent 41dd81b commit 802dda1

File tree

2 files changed

+15
-2
lines changed

2 files changed

+15
-2
lines changed

src/app/qgsmaptooloffsetcurve.cpp

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,20 +18,22 @@
1818
#include "qgsmaplayerregistry.h"
1919
#include "qgsrubberband.h"
2020
#include "qgsvectorlayer.h"
21+
#include "qgsvertexmarker.h"
2122
#include <QDoubleSpinBox>
2223
#include <QGraphicsProxyWidget>
2324
#include <QMouseEvent>
2425
#include "qgisapp.h"
2526

2627
QgsMapToolOffsetCurve::QgsMapToolOffsetCurve( QgsMapCanvas* canvas ): QgsMapToolEdit( canvas ), mRubberBand( 0 ),
27-
mOriginalGeometry( 0 ), mGeometryModified( false ), mDistanceItem( 0 ), mDistanceSpinBox( 0 )
28+
mOriginalGeometry( 0 ), mGeometryModified( false ), mDistanceItem( 0 ), mDistanceSpinBox( 0 ), mSnapVertexMarker( 0 )
2829
{
2930
}
3031

3132
QgsMapToolOffsetCurve::~QgsMapToolOffsetCurve()
3233
{
3334
deleteRubberBandAndGeometry();
3435
deleteDistanceItem();
36+
delete mSnapVertexMarker;
3537
}
3638

3739
void QgsMapToolOffsetCurve::canvasPressEvent( QMouseEvent * e )
@@ -111,6 +113,7 @@ void QgsMapToolOffsetCurve::canvasReleaseEvent( QMouseEvent * e )
111113

112114
deleteRubberBandAndGeometry();
113115
deleteDistanceItem();
116+
delete mSnapVertexMarker; mSnapVertexMarker = 0;
114117
mCanvas->refresh();
115118
}
116119

@@ -133,6 +136,9 @@ void QgsMapToolOffsetCurve::placeOffsetCurveToValue()
133136

134137
void QgsMapToolOffsetCurve::canvasMoveEvent( QMouseEvent * e )
135138
{
139+
delete mSnapVertexMarker;
140+
mSnapVertexMarker = 0;
141+
136142
if ( !mOriginalGeometry || !mRubberBand )
137143
{
138144
return;
@@ -166,8 +172,12 @@ void QgsMapToolOffsetCurve::canvasMoveEvent( QMouseEvent * e )
166172
if ( snap.layer && snap.layer->id() != mSourceLayerId && snap.snappedAtGeometry != mModifiedFeature )
167173
{
168174
layerCoords = results.at( 0 ).snappedVertex;
175+
mSnapVertexMarker = new QgsVertexMarker( mCanvas );
176+
mSnapVertexMarker->setIconType( QgsVertexMarker::ICON_CROSS );
177+
mSnapVertexMarker->setColor( Qt::green );
178+
mSnapVertexMarker->setPenWidth( 1 );
179+
mSnapVertexMarker->setCenter( layerCoords );
169180
}
170-
//todo: add vertex marker item
171181
}
172182
}
173183

src/app/qgsmaptooloffsetcurve.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
#include "qgsgeometry.h"
2121
#include "qgssnapper.h"
2222

23+
class QgsVertexMarker;
2324
class QDoubleSpinBox;
2425
class QGraphicsProxyWidget;
2526

@@ -56,6 +57,8 @@ class QgsMapToolOffsetCurve: public QgsMapToolEdit
5657
QGraphicsProxyWidget* mDistanceItem;
5758
/**Shows current distance value and allows numerical editing*/
5859
QDoubleSpinBox* mDistanceSpinBox;
60+
/**Marker to show the cursor was snapped to another location*/
61+
QgsVertexMarker* mSnapVertexMarker;
5962

6063

6164
void deleteRubberBandAndGeometry();

0 commit comments

Comments
 (0)