Merge pull request #61112 from Chaosus/graph_edit_delete_nodes_param
This commit is contained in:
@@ -459,16 +459,22 @@ void AnimationNodeBlendTreeEditor::_delete_request(const String &p_which) {
|
||||
undo_redo->commit_action();
|
||||
}
|
||||
|
||||
void AnimationNodeBlendTreeEditor::_delete_nodes_request() {
|
||||
void AnimationNodeBlendTreeEditor::_delete_nodes_request(const TypedArray<StringName> &p_nodes) {
|
||||
List<StringName> to_erase;
|
||||
|
||||
for (int i = 0; i < graph->get_child_count(); i++) {
|
||||
GraphNode *gn = Object::cast_to<GraphNode>(graph->get_child(i));
|
||||
if (gn) {
|
||||
if (gn->is_selected() && gn->is_close_button_visible()) {
|
||||
to_erase.push_back(gn->get_name());
|
||||
if (p_nodes.is_empty()) {
|
||||
for (int i = 0; i < graph->get_child_count(); i++) {
|
||||
GraphNode *gn = Object::cast_to<GraphNode>(graph->get_child(i));
|
||||
if (gn) {
|
||||
if (gn->is_selected() && gn->is_close_button_visible()) {
|
||||
to_erase.push_back(gn->get_name());
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (int i = 0; i < p_nodes.size(); i++) {
|
||||
to_erase.push_back(p_nodes[i]);
|
||||
}
|
||||
}
|
||||
|
||||
if (to_erase.is_empty()) {
|
||||
|
||||
@@ -103,7 +103,7 @@ class AnimationNodeBlendTreeEditor : public AnimationTreeNodeEditorPlugin {
|
||||
void _open_in_editor(const String &p_which);
|
||||
void _anim_selected(int p_index, Array p_options, const String &p_node);
|
||||
void _delete_request(const String &p_which);
|
||||
void _delete_nodes_request();
|
||||
void _delete_nodes_request(const TypedArray<StringName> &p_nodes);
|
||||
|
||||
bool _update_filters(const Ref<AnimationNode> &anode);
|
||||
void _edit_filters(const String &p_which);
|
||||
|
||||
@@ -3409,16 +3409,23 @@ void VisualShaderEditor::_delete_node_request(int p_type, int p_node) {
|
||||
undo_redo->commit_action();
|
||||
}
|
||||
|
||||
void VisualShaderEditor::_delete_nodes_request() {
|
||||
void VisualShaderEditor::_delete_nodes_request(const TypedArray<StringName> &p_nodes) {
|
||||
List<int> to_erase;
|
||||
|
||||
for (int i = 0; i < graph->get_child_count(); i++) {
|
||||
GraphNode *gn = Object::cast_to<GraphNode>(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.is_empty()) {
|
||||
// Called from context menu.
|
||||
for (int i = 0; i < graph->get_child_count(); i++) {
|
||||
GraphNode *gn = Object::cast_to<GraphNode>(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 < p_nodes.size(); i++) {
|
||||
to_erase.push_back(p_nodes[i].operator String().to_int());
|
||||
}
|
||||
}
|
||||
|
||||
if (to_erase.is_empty()) {
|
||||
@@ -4411,7 +4418,7 @@ void VisualShaderEditor::_node_menu_id_pressed(int p_idx) {
|
||||
_paste_nodes(true, menu_point);
|
||||
break;
|
||||
case NodeMenuOptions::DELETE:
|
||||
_delete_nodes_request();
|
||||
_delete_nodes_request(TypedArray<StringName>());
|
||||
break;
|
||||
case NodeMenuOptions::DUPLICATE:
|
||||
_duplicate_nodes();
|
||||
|
||||
@@ -346,7 +346,7 @@ class VisualShaderEditor : public VBoxContainer {
|
||||
|
||||
void _delete_nodes(int p_type, const List<int> &p_nodes);
|
||||
void _delete_node_request(int p_type, int p_node);
|
||||
void _delete_nodes_request();
|
||||
void _delete_nodes_request(const TypedArray<StringName> &p_nodes);
|
||||
|
||||
void _node_changed(int p_id);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user