Merge pull request #740 from 3nids/snapfirstnode

Visual snapping when adding first node or starting feature (fix #8300)
This commit is contained in:
Nathan Woodrow 2013-07-15 23:21:58 -07:00
commit 6b6742bc74

View File

@ -105,28 +105,25 @@ void QgsMapToolCapture::currentLayerChanged( QgsMapLayer *layer )
void QgsMapToolCapture::canvasMoveEvent( QMouseEvent * e )
{
if ( mCaptureMode == CapturePoint )
return;
if ( mRubberBand && mCapturing )
QgsPoint mapPoint;
QList<QgsSnappingResult> snapResults;
if ( mSnapper.snapToBackgroundLayers( e->pos(), snapResults ) == 0 )
{
QgsPoint mapPoint;
QList<QgsSnappingResult> snapResults;
if ( mSnapper.snapToBackgroundLayers( e->pos(), snapResults ) == 0 )
while ( !mSnappingMarkers.isEmpty() )
delete mSnappingMarkers.takeFirst();
foreach ( const QgsSnappingResult &r, snapResults )
{
while ( !mSnappingMarkers.isEmpty() )
delete mSnappingMarkers.takeFirst();
foreach ( const QgsSnappingResult &r, snapResults )
{
QgsVertexMarker *m = new QgsVertexMarker( mCanvas );
m->setIconType( QgsVertexMarker::ICON_CROSS );
m->setColor( Qt::green );
m->setPenWidth( 1 );
m->setCenter( r.snappedVertex );
mSnappingMarkers << m;
}
QgsVertexMarker *m = new QgsVertexMarker( mCanvas );
m->setIconType( QgsVertexMarker::ICON_CROSS );
m->setColor( Qt::green );
m->setPenWidth( 2 );
m->setCenter( r.snappedVertex );
mSnappingMarkers << m;
}
if ( mCaptureMode != CapturePoint && mRubberBand && mCapturing )
{
mapPoint = snapPointFromResults( snapResults, e->pos() );
mRubberBand->movePoint( mapPoint );
}