Skip to content

Commit

Permalink
Show snap vertex marker for offset curve
Browse files Browse the repository at this point in the history
  • Loading branch information
mhugent committed Feb 21, 2012
1 parent 41dd81b commit 802dda1
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 2 deletions.
14 changes: 12 additions & 2 deletions src/app/qgsmaptooloffsetcurve.cpp
Expand Up @@ -18,20 +18,22 @@
#include "qgsmaplayerregistry.h"
#include "qgsrubberband.h"
#include "qgsvectorlayer.h"
#include "qgsvertexmarker.h"
#include <QDoubleSpinBox>
#include <QGraphicsProxyWidget>
#include <QMouseEvent>
#include "qgisapp.h"

QgsMapToolOffsetCurve::QgsMapToolOffsetCurve( QgsMapCanvas* canvas ): QgsMapToolEdit( canvas ), mRubberBand( 0 ),
mOriginalGeometry( 0 ), mGeometryModified( false ), mDistanceItem( 0 ), mDistanceSpinBox( 0 )
mOriginalGeometry( 0 ), mGeometryModified( false ), mDistanceItem( 0 ), mDistanceSpinBox( 0 ), mSnapVertexMarker( 0 )
{
}

QgsMapToolOffsetCurve::~QgsMapToolOffsetCurve()
{
deleteRubberBandAndGeometry();
deleteDistanceItem();
delete mSnapVertexMarker;
}

void QgsMapToolOffsetCurve::canvasPressEvent( QMouseEvent * e )
Expand Down Expand Up @@ -111,6 +113,7 @@ void QgsMapToolOffsetCurve::canvasReleaseEvent( QMouseEvent * e )

deleteRubberBandAndGeometry();
deleteDistanceItem();
delete mSnapVertexMarker; mSnapVertexMarker = 0;
mCanvas->refresh();
}

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

void QgsMapToolOffsetCurve::canvasMoveEvent( QMouseEvent * e )
{
delete mSnapVertexMarker;
mSnapVertexMarker = 0;

if ( !mOriginalGeometry || !mRubberBand )
{
return;
Expand Down Expand Up @@ -166,8 +172,12 @@ void QgsMapToolOffsetCurve::canvasMoveEvent( QMouseEvent * e )
if ( snap.layer && snap.layer->id() != mSourceLayerId && snap.snappedAtGeometry != mModifiedFeature )
{
layerCoords = results.at( 0 ).snappedVertex;
mSnapVertexMarker = new QgsVertexMarker( mCanvas );
mSnapVertexMarker->setIconType( QgsVertexMarker::ICON_CROSS );
mSnapVertexMarker->setColor( Qt::green );
mSnapVertexMarker->setPenWidth( 1 );
mSnapVertexMarker->setCenter( layerCoords );
}
//todo: add vertex marker item
}
}

Expand Down
3 changes: 3 additions & 0 deletions src/app/qgsmaptooloffsetcurve.h
Expand Up @@ -20,6 +20,7 @@
#include "qgsgeometry.h"
#include "qgssnapper.h"

class QgsVertexMarker;
class QDoubleSpinBox;
class QGraphicsProxyWidget;

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


void deleteRubberBandAndGeometry();
Expand Down

0 comments on commit 802dda1

Please sign in to comment.