Skip to content

Commit

Permalink
Override clean() to remove rubber bands in vertex tool and circular s…
Browse files Browse the repository at this point in the history
…tring
  • Loading branch information
gacarrillor authored and nyalldawson committed Jun 19, 2020
1 parent a0685c4 commit 4512597
Show file tree
Hide file tree
Showing 4 changed files with 31 additions and 12 deletions.
24 changes: 12 additions & 12 deletions src/app/qgsmaptooladdcircularstring.cpp
Expand Up @@ -58,12 +58,7 @@ void QgsMapToolAddCircularString::keyPressEvent( QKeyEvent *e )

if ( ( e && e->key() == Qt::Key_Escape ) || ( ( e && e->key() == Qt::Key_Backspace ) && ( mPoints.size() == 1 ) ) )
{
mPoints.clear();
delete mRubberBand;
mRubberBand = nullptr;
delete mTempRubberBand;
mTempRubberBand = nullptr;
removeCenterPointRubberBand();
clean();
if ( mParentTool )
mParentTool->keyPressEvent( e );
}
Expand Down Expand Up @@ -125,12 +120,7 @@ void QgsMapToolAddCircularString::deactivate()
QgsCircularString *c = new QgsCircularString();
c->setPoints( mPoints );
mParentTool->addCurve( c );
mPoints.clear();
delete mRubberBand;
mRubberBand = nullptr;
delete mTempRubberBand;
mTempRubberBand = nullptr;
removeCenterPointRubberBand();
clean();
QgsMapToolCapture::deactivate();
}

Expand Down Expand Up @@ -253,3 +243,13 @@ void QgsMapToolAddCircularString::release( QgsMapMouseEvent *e )
}
activate();
}

void QgsMapToolAddCircularString::clean()
{
mPoints.clear();
delete mRubberBand;
mRubberBand = nullptr;
delete mTempRubberBand;
mTempRubberBand = nullptr;
removeCenterPointRubberBand();
}
3 changes: 3 additions & 0 deletions src/app/qgsmaptooladdcircularstring.h
Expand Up @@ -36,6 +36,9 @@ class APP_EXPORT QgsMapToolAddCircularString: public QgsMapToolCapture

void activate() override;

//! Clean drawings on map canvas
void clean() override;

/*private slots:
void setParentTool( QgsMapTool *newTool, QgsMapTool *oldTool );*/

Expand Down
13 changes: 13 additions & 0 deletions src/app/vertextool/qgsvertextool.cpp
Expand Up @@ -2861,3 +2861,16 @@ void QgsVertexTool::cleanEditor( QgsFeatureId id )
cleanupVertexEditor();
};
}

void QgsVertexTool::clean()
{
if ( mDraggingVertex || mDraggingEdge )
{
stopDragging();
}
if ( mSelectionRubberBand )
{
stopSelectionRubberBand();
mSelectionRubberBandStartPos.reset();
}
}
3 changes: 3 additions & 0 deletions src/app/vertextool/qgsvertextool.h
Expand Up @@ -91,6 +91,9 @@ class APP_EXPORT QgsVertexTool : public QgsMapToolAdvancedDigitizing

void deactivate() override;

//! Clean drawings on map canvas
void clean() override;

void keyPressEvent( QKeyEvent *e ) override;

QgsGeometry cachedGeometry( const QgsVectorLayer *layer, QgsFeatureId fid );
Expand Down

0 comments on commit 4512597

Please sign in to comment.