mirror of
https://github.com/qgis/QGIS.git
synced 2025-04-14 00:07:35 -04:00
Allow cancelation of polygon/polyline creation
This commit is contained in:
parent
4e8483ecfb
commit
87ef5c52b0
@ -45,6 +45,8 @@ class QgsLayoutViewToolAddNodeItem : QgsLayoutViewTool
|
||||
|
||||
virtual void layoutReleaseEvent( QgsLayoutViewMouseEvent *event );
|
||||
|
||||
virtual void keyPressEvent( QKeyEvent *event );
|
||||
|
||||
virtual void deactivate();
|
||||
|
||||
|
||||
|
@ -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()
|
||||
{
|
||||
if ( mRubberBand )
|
||||
|
@ -55,6 +55,7 @@ class GUI_EXPORT QgsLayoutViewToolAddNodeItem : public QgsLayoutViewTool
|
||||
void layoutPressEvent( QgsLayoutViewMouseEvent *event ) override;
|
||||
void layoutMoveEvent( QgsLayoutViewMouseEvent *event ) override;
|
||||
void layoutReleaseEvent( QgsLayoutViewMouseEvent *event ) override;
|
||||
void keyPressEvent( QKeyEvent *event ) override;
|
||||
void deactivate() override;
|
||||
|
||||
signals:
|
||||
|
Loading…
x
Reference in New Issue
Block a user