From a6f4922d66151d07b80bf75b0e6184b89fb543c5 Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Sun, 16 Feb 2020 11:43:09 +1100 Subject: [PATCH] nodeview: allow esc key to cancel adding a node --- app/widget/nodeview/nodeview.cpp | 13 +++++++++++++ app/widget/nodeview/nodeview.h | 2 ++ 2 files changed, 15 insertions(+) diff --git a/app/widget/nodeview/nodeview.cpp b/app/widget/nodeview/nodeview.cpp index d4396a340..f3539b9b6 100644 --- a/app/widget/nodeview/nodeview.cpp +++ b/app/widget/nodeview/nodeview.cpp @@ -215,6 +215,19 @@ void NodeView::ItemsChanged() } } +void NodeView::keyPressEvent(QKeyEvent *event) +{ + QGraphicsView::keyPressEvent(event); + + if (event->key() == Qt::Key_Escape && attached_item_) { + DetachItemFromCursor(); + + // We undo the last action which SHOULD be adding the node + // FIXME: Possible danger of this not being the case? + Core::instance()->undo_stack()->undo(); + } +} + void NodeView::mousePressEvent(QMouseEvent *event) { if (attached_item_) { diff --git a/app/widget/nodeview/nodeview.h b/app/widget/nodeview/nodeview.h index 8b19e0684..d79b2b4f5 100644 --- a/app/widget/nodeview/nodeview.h +++ b/app/widget/nodeview/nodeview.h @@ -89,6 +89,8 @@ signals: void SelectionChanged(QList selected_nodes); protected: + virtual void keyPressEvent(QKeyEvent *event) override; + virtual void mousePressEvent(QMouseEvent *event) override; virtual void mouseMoveEvent(QMouseEvent *event) override;