mirror of
https://github.com/qgis/QGIS.git
synced 2025-03-01 00:46:20 -05:00
Merge pull request #740 from 3nids/snapfirstnode
Visual snapping when adding first node or starting feature (fix #8300)
This commit is contained in:
commit
6b6742bc74
@ -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 );
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user