From 03f09fa75d7d5af6a07e8aa359cbc1e448d7f23d Mon Sep 17 00:00:00 2001 From: Yuri Rubinsky Date: Wed, 18 May 2022 12:36:00 +0300 Subject: [PATCH] Add node list param to GraphEdit::delete_nodes_request signal --- visual_script_editor.cpp | 22 ++++++++++++++-------- visual_script_editor.h | 2 +- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/visual_script_editor.cpp b/visual_script_editor.cpp index 578a220..02d59ea 100644 --- a/visual_script_editor.cpp +++ b/visual_script_editor.cpp @@ -1831,18 +1831,24 @@ void VisualScriptEditor::_on_nodes_paste() { } } -void VisualScriptEditor::_on_nodes_delete() { +void VisualScriptEditor::_on_nodes_delete(const Array &p_nodes) { // delete all the selected nodes List to_erase; - for (int i = 0; i < graph->get_child_count(); i++) { - GraphNode *gn = Object::cast_to(graph->get_child(i)); - if (gn) { - if (gn->is_selected() && gn->is_close_button_visible()) { - to_erase.push_back(gn->get_name().operator String().to_int()); + if (p_nodes.empty()) { + for (int i = 0; i < graph->get_child_count(); i++) { + GraphNode *gn = Object::cast_to(graph->get_child(i)); + if (gn) { + if (gn->is_selected() && gn->is_close_button_visible()) { + to_erase.push_back(gn->get_name().operator String().to_int()); + } } } + } else { + for (int i = 0; i < graph->get_child_count(); i++) { + to_erase.push_back(p_nodes[i].operator String().to_int()); + } } if (to_erase.empty()) { @@ -4253,7 +4259,7 @@ void VisualScriptEditor::_comment_node_resized(const Vector2 &p_new_size, int p_ void VisualScriptEditor::_menu_option(int p_what) { switch (p_what) { case EDIT_DELETE_NODES: { - _on_nodes_delete(); + _on_nodes_delete(Array()); } break; case EDIT_TOGGLE_BREAKPOINT: { List reselect; @@ -4288,7 +4294,7 @@ void VisualScriptEditor::_menu_option(int p_what) { } break; case EDIT_CUT_NODES: { _on_nodes_copy(); - _on_nodes_delete(); + _on_nodes_delete(Array()); } break; case EDIT_PASTE_NODES: { _on_nodes_paste(); diff --git a/visual_script_editor.h b/visual_script_editor.h index 618aed8..5ed8816 100644 --- a/visual_script_editor.h +++ b/visual_script_editor.h @@ -257,7 +257,7 @@ class VisualScriptEditor : public ScriptEditorBase { void _on_nodes_copy(); void _on_nodes_paste(); - void _on_nodes_delete(); + void _on_nodes_delete(const Array &p_nodes); void _on_nodes_duplicate(); Variant get_drag_data_fw(const Point2 &p_point, Control *p_from);