Skip to content

Commit

Permalink
Enable tools using extent when map is rotated
Browse files Browse the repository at this point in the history
  • Loading branch information
lbartoletti committed Oct 18, 2017
1 parent c4a75f0 commit 0d8d101
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 10 deletions.
10 changes: 7 additions & 3 deletions src/app/qgsmaptoolellipseextent.cpp
Expand Up @@ -18,6 +18,8 @@
#include "qgsgeometryrubberband.h"
#include "qgsmapcanvas.h"
#include "qgspoint.h"
#include "qgsgeometryutils.h"
#include "qgslinestring.h"
#include <QMouseEvent>

QgsMapToolEllipseExtent::QgsMapToolEllipseExtent( QgsMapToolCapture *parentTool,
Expand Down Expand Up @@ -67,9 +69,11 @@ void QgsMapToolEllipseExtent::cadCanvasMoveEvent( QgsMapMouseEvent *e )
}
else
{
emit messageEmitted( tr( "Cannot use this tool when the map canvas is rotated" ), QgsMessageBar::WARNING );
mPoints.clear();
break;
double dist = mPoints.at( 0 ).distance( mapPoint );
double angle = mPoints.at( 0 ).azimuth( mapPoint );

mEllipse = QgsEllipse().fromExtent( mPoints.at( 0 ), mPoints.at( 0 ).project( dist, angle ) );
mTempRubberBand->setGeometry( mEllipse.toPolygon( segments() ) );
}
}
break;
Expand Down
10 changes: 6 additions & 4 deletions src/app/qgsmaptoolrectanglecenter.cpp
Expand Up @@ -17,8 +17,8 @@
#include "qgsmaptoolrectanglecenter.h"
#include "qgsgeometryrubberband.h"
#include "qgsgeometryutils.h"
#include "qgslinestring.h"
#include "qgsmapcanvas.h"
#include "qgslinestring.h"
#include "qgspoint.h"
#include <QMouseEvent>
#include <memory>
Expand Down Expand Up @@ -74,9 +74,11 @@ void QgsMapToolRectangleCenter::cadCanvasMoveEvent( QgsMapMouseEvent *e )
}
else
{
emit messageEmitted( tr( "Cannot use this tool when the map canvas is rotated" ), QgsMessageBar::WARNING );
mPoints.clear();
break;
double dist = mPoints.at( 0 ).distance( mapPoint );
double angle = mPoints.at( 0 ).azimuth( mapPoint );

mRectangle = QgsRectangle( mPoints.at( 0 ).project( -dist, angle ), mPoints.at( 0 ).project( dist, angle ) );
mTempRubberBand->setGeometry( QgsMapToolAddRectangle::rectangleToPolygon() );
}
}
break;
Expand Down
9 changes: 6 additions & 3 deletions src/app/qgsmaptoolrectangleextent.cpp
Expand Up @@ -18,6 +18,7 @@
#include "qgsgeometryrubberband.h"
#include "qgsgeometryutils.h"
#include "qgsmapcanvas.h"
#include "qgslinestring.h"
#include "qgspoint.h"
#include <QMouseEvent>
#include <memory>
Expand Down Expand Up @@ -69,9 +70,11 @@ void QgsMapToolRectangleExtent::cadCanvasMoveEvent( QgsMapMouseEvent *e )
}
else
{
emit messageEmitted( tr( "Cannot use this tool when the map canvas is rotated" ), QgsMessageBar::WARNING );
mPoints.clear();
break;
double dist = mPoints.at( 0 ).distance( mapPoint );
double angle = mPoints.at( 0 ).azimuth( mapPoint );

mRectangle = QgsRectangle( mPoints.at( 0 ), mPoints.at( 0 ).project( dist, angle ) );
mTempRubberBand->setGeometry( QgsMapToolAddRectangle::rectangleToPolygon() );
}
}
break;
Expand Down

0 comments on commit 0d8d101

Please sign in to comment.