Skip to content

Commit

Permalink
Allow cancelation of polygon/polyline creation
Browse files Browse the repository at this point in the history
  • Loading branch information
nyalldawson committed Nov 7, 2017
1 parent 4e8483e commit 87ef5c5
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 0 deletions.
2 changes: 2 additions & 0 deletions python/gui/layout/qgslayoutviewtooladdnodeitem.sip
Expand Up @@ -45,6 +45,8 @@ class QgsLayoutViewToolAddNodeItem : QgsLayoutViewTool


virtual void layoutReleaseEvent( QgsLayoutViewMouseEvent *event ); virtual void layoutReleaseEvent( QgsLayoutViewMouseEvent *event );


virtual void keyPressEvent( QKeyEvent *event );

virtual void deactivate(); virtual void deactivate();




Expand Down
32 changes: 32 additions & 0 deletions src/gui/layout/qgslayoutviewtooladdnodeitem.cpp
Expand Up @@ -111,6 +111,38 @@ void QgsLayoutViewToolAddNodeItem::layoutReleaseEvent( QgsLayoutViewMouseEvent *
} }
} }


void QgsLayoutViewToolAddNodeItem::keyPressEvent( QKeyEvent *event )
{
if ( !mRubberBand || event->isAutoRepeat() )
{
event->ignore();
return;
}

if ( event->key() == Qt::Key_Delete || event->key() == Qt::Key_Backspace )
{
if ( mPolygon.size() > 2 )
{
//remove last added vertex
mPolygon.pop_back();
setRubberBandNodes();
}
else
{
// all deleted, cancel
mRubberBand.reset();
}
}
else if ( event->key() == Qt::Key_Escape )
{
mRubberBand.reset();
}
else
{
event->ignore();
}
}

void QgsLayoutViewToolAddNodeItem::deactivate() void QgsLayoutViewToolAddNodeItem::deactivate()
{ {
if ( mRubberBand ) if ( mRubberBand )
Expand Down
1 change: 1 addition & 0 deletions src/gui/layout/qgslayoutviewtooladdnodeitem.h
Expand Up @@ -55,6 +55,7 @@ class GUI_EXPORT QgsLayoutViewToolAddNodeItem : public QgsLayoutViewTool
void layoutPressEvent( QgsLayoutViewMouseEvent *event ) override; void layoutPressEvent( QgsLayoutViewMouseEvent *event ) override;
void layoutMoveEvent( QgsLayoutViewMouseEvent *event ) override; void layoutMoveEvent( QgsLayoutViewMouseEvent *event ) override;
void layoutReleaseEvent( QgsLayoutViewMouseEvent *event ) override; void layoutReleaseEvent( QgsLayoutViewMouseEvent *event ) override;
void keyPressEvent( QKeyEvent *event ) override;
void deactivate() override; void deactivate() override;


signals: signals:
Expand Down

0 comments on commit 87ef5c5

Please sign in to comment.