mirror of
https://github.com/qgis/QGIS.git
synced 2025-03-01 00:46:20 -05:00
Visual snapping when adding first node or starting feature (fix #8300)
This commit is contained in:
parent
dc489dfc7a
commit
805be41738
@ -105,28 +105,25 @@ void QgsMapToolCapture::currentLayerChanged( QgsMapLayer *layer )
|
|||||||
|
|
||||||
void QgsMapToolCapture::canvasMoveEvent( QMouseEvent * e )
|
void QgsMapToolCapture::canvasMoveEvent( QMouseEvent * e )
|
||||||
{
|
{
|
||||||
if ( mCaptureMode == CapturePoint )
|
QgsPoint mapPoint;
|
||||||
return;
|
QList<QgsSnappingResult> snapResults;
|
||||||
|
if ( mSnapper.snapToBackgroundLayers( e->pos(), snapResults ) == 0 )
|
||||||
if ( mRubberBand && mCapturing )
|
|
||||||
{
|
{
|
||||||
QgsPoint mapPoint;
|
while ( !mSnappingMarkers.isEmpty() )
|
||||||
QList<QgsSnappingResult> snapResults;
|
delete mSnappingMarkers.takeFirst();
|
||||||
if ( mSnapper.snapToBackgroundLayers( e->pos(), snapResults ) == 0 )
|
|
||||||
|
foreach ( const QgsSnappingResult &r, snapResults )
|
||||||
{
|
{
|
||||||
while ( !mSnappingMarkers.isEmpty() )
|
QgsVertexMarker *m = new QgsVertexMarker( mCanvas );
|
||||||
delete mSnappingMarkers.takeFirst();
|
m->setIconType( QgsVertexMarker::ICON_CROSS );
|
||||||
|
m->setColor( Qt::green );
|
||||||
foreach ( const QgsSnappingResult &r, snapResults )
|
m->setPenWidth( 2 );
|
||||||
{
|
m->setCenter( r.snappedVertex );
|
||||||
QgsVertexMarker *m = new QgsVertexMarker( mCanvas );
|
mSnappingMarkers << m;
|
||||||
m->setIconType( QgsVertexMarker::ICON_CROSS );
|
}
|
||||||
m->setColor( Qt::green );
|
|
||||||
m->setPenWidth( 1 );
|
|
||||||
m->setCenter( r.snappedVertex );
|
|
||||||
mSnappingMarkers << m;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
if ( mCaptureMode != CapturePoint && mRubberBand && mCapturing )
|
||||||
|
{
|
||||||
mapPoint = snapPointFromResults( snapResults, e->pos() );
|
mapPoint = snapPointFromResults( snapResults, e->pos() );
|
||||||
mRubberBand->movePoint( mapPoint );
|
mRubberBand->movePoint( mapPoint );
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user