Skip to content

Commit 8e4234c

Browse files
committed
Fix tools which doesn't works when map is rotated
1 parent 3f317b6 commit 8e4234c

File tree

3 files changed

+28
-6
lines changed

3 files changed

+28
-6
lines changed

src/app/qgsmaptoolellipseextent.cpp

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -60,15 +60,29 @@ void QgsMapToolEllipseExtent::cadCanvasReleaseEvent( QgsMapMouseEvent *e )
6060
void QgsMapToolEllipseExtent::cadCanvasMoveEvent( QgsMapMouseEvent *e )
6161
{
6262
QgsPoint mapPoint( e->mapPoint() );
63+
6364
if ( mTempRubberBand )
6465
{
65-
66-
if ( qgsDoubleNear( mCanvas->rotation(), 0.0 ) )
66+
switch ( mPoints.size() )
6767
{
68-
mEllipse = QgsEllipse().fromExtent( mPoints.at( 0 ), mapPoint );
69-
mTempRubberBand->setGeometry( mEllipse.toPolygon() );
68+
case 1:
69+
{
70+
71+
if ( qgsDoubleNear( mCanvas->rotation(), 0.0 ) )
72+
{
73+
mEllipse = QgsEllipse().fromExtent( mPoints.at( 0 ), mapPoint );
74+
mTempRubberBand->setGeometry( mEllipse.toPolygon() );
75+
}
76+
else
77+
{
78+
emit messageEmitted( tr( "Cannot use this tool when the map canvas is rotated" ), QgsMessageBar::WARNING );
79+
mPoints.clear();
80+
break;
81+
}
82+
}
83+
break;
84+
default:
85+
break;
7086
}
71-
else
72-
emit messageEmitted( tr( "Cannot use this tool when the map canvas is rotated" ), QgsMessageBar::WARNING );
7387
}
7488
}

src/app/qgsmaptoolrectanglecenter.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,11 @@ void QgsMapToolRectangleCenter::cadCanvasMoveEvent( QgsMapMouseEvent *e )
8080
mTempRubberBand->setGeometry( QgsMapToolAddRectangle::rectangleToPolygon() );
8181
}
8282
else
83+
{
8384
emit messageEmitted( tr( "Cannot use this tool when the map canvas is rotated" ), QgsMessageBar::WARNING );
85+
mPoints.clear();
86+
break;
87+
}
8488
}
8589
break;
8690
default:

src/app/qgsmaptoolrectangleextent.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,11 @@ void QgsMapToolRectangleExtent::cadCanvasMoveEvent( QgsMapMouseEvent *e )
7676
mTempRubberBand->setGeometry( QgsMapToolAddRectangle::rectangleToPolygon( ) );
7777
}
7878
else
79+
{
7980
emit messageEmitted( tr( "Cannot use this tool when the map canvas is rotated" ), QgsMessageBar::WARNING );
81+
mPoints.clear();
82+
break;
83+
}
8084
}
8185
break;
8286
default:

0 commit comments

Comments
 (0)