From 00e12bc303b9c7340e2a9ee864e24209a1ce9b7e Mon Sep 17 00:00:00 2001 From: lbartoletti Date: Mon, 9 Oct 2017 23:05:16 +0200 Subject: [PATCH] - Increases the number of segments for QgsMapToolAddEllipse --- src/app/qgsmaptooladdellipse.cpp | 2 +- src/app/qgsmaptooladdellipse.h | 3 +++ src/app/qgsmaptoolellipsecenter2points.cpp | 2 +- src/app/qgsmaptoolellipsecenterpoint.cpp | 2 +- src/app/qgsmaptoolellipseextent.cpp | 2 +- 5 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/app/qgsmaptooladdellipse.cpp b/src/app/qgsmaptooladdellipse.cpp index a8c1bc4afb3..8db34edfdc1 100644 --- a/src/app/qgsmaptooladdellipse.cpp +++ b/src/app/qgsmaptooladdellipse.cpp @@ -66,7 +66,7 @@ void QgsMapToolAddEllipse::deactivate() } mParentTool->clearCurve(); - mParentTool->addCurve( mEllipse.toLineString() ); + mParentTool->addCurve( mEllipse.toLineString( segments() ) ); clean(); QgsMapToolCapture::deactivate(); diff --git a/src/app/qgsmaptooladdellipse.h b/src/app/qgsmaptooladdellipse.h index 426d29b7dac..79ba60d6632 100644 --- a/src/app/qgsmaptooladdellipse.h +++ b/src/app/qgsmaptooladdellipse.h @@ -18,6 +18,7 @@ #include "qgsmaptoolcapture.h" #include "qgsellipse.h" +#include "qgssettings.h" class QgsGeometryRubberBand; @@ -49,6 +50,8 @@ class QgsMapToolAddEllipse: public QgsMapToolCapture QgsGeometryRubberBand *mTempRubberBand = nullptr; //! Ellipse QgsEllipse mEllipse; + //! convenient method to return the number of segments + unsigned int segments( ) { return QgsSettings().value( QStringLiteral( "/qgis/digitizing/offset_quad_seg" ), 8 ).toInt() * 12; } private: //! convenient method to clean members diff --git a/src/app/qgsmaptoolellipsecenter2points.cpp b/src/app/qgsmaptoolellipsecenter2points.cpp index 096e97f3ac7..8a1fd3f14cf 100644 --- a/src/app/qgsmaptoolellipsecenter2points.cpp +++ b/src/app/qgsmaptoolellipsecenter2points.cpp @@ -73,7 +73,7 @@ void QgsMapToolEllipseCenter2Points::cadCanvasMoveEvent( QgsMapMouseEvent *e ) case 2: { mEllipse = QgsEllipse().fromCenter2Points( mPoints.at( 0 ), mPoints.at( 1 ), mapPoint ); - mTempRubberBand->setGeometry( mEllipse.toPolygon() ); + mTempRubberBand->setGeometry( mEllipse.toPolygon( segments() ) ); } break; default: diff --git a/src/app/qgsmaptoolellipsecenterpoint.cpp b/src/app/qgsmaptoolellipsecenterpoint.cpp index 22ccffe4e47..94d4ce3f7b4 100644 --- a/src/app/qgsmaptoolellipsecenterpoint.cpp +++ b/src/app/qgsmaptoolellipsecenterpoint.cpp @@ -56,6 +56,6 @@ void QgsMapToolEllipseCenterPoint::cadCanvasMoveEvent( QgsMapMouseEvent *e ) if ( mTempRubberBand ) { mEllipse = QgsEllipse().fromCenterPoint( mPoints.at( 0 ), mapPoint ); - mTempRubberBand->setGeometry( mEllipse.toPolygon() ); + mTempRubberBand->setGeometry( mEllipse.toPolygon( segments() ) ); } } diff --git a/src/app/qgsmaptoolellipseextent.cpp b/src/app/qgsmaptoolellipseextent.cpp index a0660eaa10e..306a519dbe3 100644 --- a/src/app/qgsmaptoolellipseextent.cpp +++ b/src/app/qgsmaptoolellipseextent.cpp @@ -63,7 +63,7 @@ void QgsMapToolEllipseExtent::cadCanvasMoveEvent( QgsMapMouseEvent *e ) if ( qgsDoubleNear( mCanvas->rotation(), 0.0 ) ) { mEllipse = QgsEllipse().fromExtent( mPoints.at( 0 ), mapPoint ); - mTempRubberBand->setGeometry( mEllipse.toPolygon() ); + mTempRubberBand->setGeometry( mEllipse.toPolygon( segments() ) ); } else {