From 0a74714f5d4954d0801c31c9506136b19dc71905 Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Sun, 23 Feb 2020 11:38:30 +1100 Subject: [PATCH] nodeview/nodepanel: implemented select all/deselect all functionality --- app/panel/node/node.cpp | 10 ++++++++++ app/panel/node/node.h | 3 +++ app/widget/nodeview/nodeview.cpp | 18 ++++++++++++++++++ app/widget/nodeview/nodeview.h | 3 +++ 4 files changed, 34 insertions(+) diff --git a/app/panel/node/node.cpp b/app/panel/node/node.cpp index 0e7b43f75..04516e272 100644 --- a/app/panel/node/node.cpp +++ b/app/panel/node/node.cpp @@ -44,6 +44,16 @@ void NodePanel::SetGraph(NodeGraph *graph) node_view_->SetGraph(graph); } +void NodePanel::SelectAll() +{ + node_view_->SelectAll(); +} + +void NodePanel::DeselectAll() +{ + node_view_->DeselectAll(); +} + void NodePanel::DeleteSelected() { node_view_->DeleteSelected(); diff --git a/app/panel/node/node.h b/app/panel/node/node.h index 878d89aab..e603ea73d 100644 --- a/app/panel/node/node.h +++ b/app/panel/node/node.h @@ -35,6 +35,9 @@ public: void SetGraph(NodeGraph* graph); + virtual void SelectAll() override; + virtual void DeselectAll() override; + virtual void DeleteSelected() override; signals: diff --git a/app/widget/nodeview/nodeview.cpp b/app/widget/nodeview/nodeview.cpp index 71274d783..70780f27e 100644 --- a/app/widget/nodeview/nodeview.cpp +++ b/app/widget/nodeview/nodeview.cpp @@ -153,6 +153,24 @@ void NodeView::DeleteSelected() Core::instance()->undo_stack()->push(new NodeRemoveCommand(graph_, selected_nodes)); } +void NodeView::SelectAll() +{ + QList all_items = this->items(); + + foreach (QGraphicsItem* i, all_items) { + i->setSelected(true); + } +} + +void NodeView::DeselectAll() +{ + QList all_items = this->items(); + + foreach (QGraphicsItem* i, all_items) { + i->setSelected(false); + } +} + void NodeView::AddNode(Node* node) { NodeViewItem* item = new NodeViewItem(); diff --git a/app/widget/nodeview/nodeview.h b/app/widget/nodeview/nodeview.h index 0a0869fa1..efc568fb9 100644 --- a/app/widget/nodeview/nodeview.h +++ b/app/widget/nodeview/nodeview.h @@ -82,6 +82,9 @@ public: */ void DeleteSelected(); + void SelectAll(); + void DeselectAll(); + signals: /** * @brief Signal emitted when the selected nodes have changed