diff --git a/python/gui/qgsmaptoolcapture.sip b/python/gui/qgsmaptoolcapture.sip index c459328ac46..5ee4dfbce09 100644 --- a/python/gui/qgsmaptoolcapture.sip +++ b/python/gui/qgsmaptoolcapture.sip @@ -114,11 +114,6 @@ Removes the last vertex from mRubberBand and mCaptureList :rtype: bool %End - void stopCapturing(); -%Docstring - Stop capturing -%End - int size(); %Docstring Number of points digitized @@ -146,6 +141,13 @@ Removes the last vertex from mRubberBand and mCaptureList Close an open polygon %End + protected slots: + + void stopCapturing(); +%Docstring + Stop capturing +%End + }; /************************************************************************ diff --git a/src/app/qgsmaptooladdcircularstring.cpp b/src/app/qgsmaptooladdcircularstring.cpp index d5d9e88356a..01b8e4742b9 100644 --- a/src/app/qgsmaptooladdcircularstring.cpp +++ b/src/app/qgsmaptooladdcircularstring.cpp @@ -36,6 +36,8 @@ QgsMapToolAddCircularString::QgsMapToolAddCircularString( QgsMapToolCapture *par { connect( mCanvas, &QgsMapCanvas::mapToolSet, this, &QgsMapToolAddCircularString::setParentTool ); } + connect( QgisApp::instance(), SIGNAL( newProject() ), this, SLOT( stopCapturing() ) ); + connect( QgisApp::instance(), SIGNAL( projectRead() ), this, SLOT( stopCapturing() ) ); } QgsMapToolAddCircularString::QgsMapToolAddCircularString( QgsMapCanvas *canvas ) diff --git a/src/app/qgsmaptooladdfeature.cpp b/src/app/qgsmaptooladdfeature.cpp index 06bc99148e2..9a68d85ecb8 100644 --- a/src/app/qgsmaptooladdfeature.cpp +++ b/src/app/qgsmaptooladdfeature.cpp @@ -40,6 +40,8 @@ QgsMapToolAddFeature::QgsMapToolAddFeature( QgsMapCanvas *canvas, CaptureMode mo , mCheckGeometryType( true ) { mToolName = tr( "Add feature" ); + connect( QgisApp::instance(), SIGNAL( newProject() ), this, SLOT( stopCapturing() ) ); + connect( QgisApp::instance(), SIGNAL( projectRead() ), this, SLOT( stopCapturing() ) ); } QgsMapToolAddFeature::~QgsMapToolAddFeature() diff --git a/src/app/qgsmaptooladdpart.cpp b/src/app/qgsmaptooladdpart.cpp index 9b0daa371bd..81f599a9444 100644 --- a/src/app/qgsmaptooladdpart.cpp +++ b/src/app/qgsmaptooladdpart.cpp @@ -31,6 +31,8 @@ QgsMapToolAddPart::QgsMapToolAddPart( QgsMapCanvas *canvas ) : QgsMapToolCapture( canvas, QgisApp::instance()->cadDockWidget() ) { mToolName = tr( "Add part" ); + connect( QgisApp::instance(), SIGNAL( newProject() ), this, SLOT( stopCapturing() ) ); + connect( QgisApp::instance(), SIGNAL( projectRead() ), this, SLOT( stopCapturing() ) ); } QgsMapToolAddPart::~QgsMapToolAddPart() diff --git a/src/app/qgsmaptooladdring.cpp b/src/app/qgsmaptooladdring.cpp index 855dbd721c7..554e6a3e9a2 100644 --- a/src/app/qgsmaptooladdring.cpp +++ b/src/app/qgsmaptooladdring.cpp @@ -29,6 +29,8 @@ QgsMapToolAddRing::QgsMapToolAddRing( QgsMapCanvas *canvas ) : QgsMapToolCapture( canvas, QgisApp::instance()->cadDockWidget(), QgsMapToolCapture::CapturePolygon ) { mToolName = tr( "Add ring" ); + connect( QgisApp::instance(), SIGNAL( newProject() ), this, SLOT( stopCapturing() ) ); + connect( QgisApp::instance(), SIGNAL( projectRead() ), this, SLOT( stopCapturing() ) ); } QgsMapToolAddRing::~QgsMapToolAddRing() diff --git a/src/gui/qgsmaptoolcapture.h b/src/gui/qgsmaptoolcapture.h index 43e9c478256..40e47ec2923 100644 --- a/src/gui/qgsmaptoolcapture.h +++ b/src/gui/qgsmaptoolcapture.h @@ -147,11 +147,6 @@ class GUI_EXPORT QgsMapToolCapture : public QgsMapToolAdvancedDigitizing */ bool isCapturing() const; - /** - * Stop capturing - */ - void stopCapturing(); - /** * Number of points digitized * @@ -177,6 +172,13 @@ class GUI_EXPORT QgsMapToolCapture : public QgsMapToolAdvancedDigitizing */ void closePolygon(); + protected slots: + + /** + * Stop capturing + */ + void stopCapturing(); + private: //! whether tracing has been requested by the user bool tracingEnabled();