diff --git a/editor/docks/scene_tree_dock.cpp b/editor/docks/scene_tree_dock.cpp index c9ffa11c749..6f12f56c960 100644 --- a/editor/docks/scene_tree_dock.cpp +++ b/editor/docks/scene_tree_dock.cpp @@ -615,7 +615,7 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) { break; } if (editor_selection->get_selection().size() > 1) { - if (!_validate_no_foreign_selected(editor_selection->get_top_selected_node_list())) { + if (!_validate_no_foreign_selected(editor_selection->get_full_selected_node_list())) { break; } rename_dialog->popup_centered(); @@ -627,7 +627,7 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) { } Tree *tree = scene_tree->get_scene_tree(); if (tree->is_anything_selected()) { - if (!_validate_no_foreign_selected(editor_selection->get_top_selected_node_list())) { + if (!_validate_no_foreign_selected(editor_selection->get_full_selected_node_list())) { break; } tree->grab_focus(!tree->has_focus(true)); @@ -708,11 +708,11 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) { } break; case TOOL_CUT: case TOOL_COPY: { - if (!edited_scene || (p_tool == TOOL_CUT && !_validate_no_foreign_selected(editor_selection->get_top_selected_node_list()))) { + List selection = editor_selection->get_top_selected_node_list(); + if (!edited_scene || (p_tool == TOOL_CUT && !_validate_no_foreign_selected(selection))) { break; } - List selection = editor_selection->get_top_selected_node_list(); if (selection.is_empty()) { break; } @@ -782,11 +782,12 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) { break; } - if (!_validate_no_foreign_selected(editor_selection->get_top_selected_node_list())) { + List selection = editor_selection->get_top_selected_node_list(); + if (!_validate_no_foreign_selected(selection)) { break; } - for (const Node *node : editor_selection->get_top_selected_node_list()) { + for (const Node *node : selection) { if (node == edited_scene) { EditorNode::get_singleton()->show_warning(TTR("This operation can't be done on the tree root.")); return; @@ -816,9 +817,9 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) { } Node *selected = scene_tree->get_selected(); - const List &top_node_list = editor_selection->get_top_selected_node_list(); - if (!selected && !top_node_list.is_empty()) { - selected = top_node_list.front()->get(); + const List &selection = editor_selection->get_top_selected_node_list(); + if (!selected && !selection.is_empty()) { + selected = selection.front()->get(); } if (selected) { @@ -885,21 +886,21 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) { break; } - List selection = editor_selection->get_full_selected_node_list(); - if (!_validate_no_foreign_selected(selection)) { + List full_selection = editor_selection->get_full_selected_node_list(); + if (!_validate_no_foreign_selected(full_selection)) { break; } bool MOVING_DOWN = (p_tool == TOOL_MOVE_DOWN); bool MOVING_UP = !MOVING_DOWN; - selection.sort_custom(); // sort by index + full_selection.sort_custom(); // sort by index if (MOVING_DOWN) { - selection.reverse(); + full_selection.reverse(); } bool is_nowhere_to_move = false; - for (Node *E : selection) { + for (Node *E : full_selection) { // `move_child` + `get_index` doesn't really work for internal nodes. ERR_FAIL_COND_MSG(E->is_internal(), "Trying to move internal node, this is not supported."); @@ -913,14 +914,14 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) { } EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); - if (selection.size() == 1) { + if (full_selection.size() == 1) { undo_redo->create_action(TTR("Move Node in Parent")); } - if (selection.size() > 1) { + if (full_selection.size() > 1) { undo_redo->create_action(TTR("Move Nodes in Parent")); } - for (List::Element *top_E = selection.front(), *bottom_E = selection.back(); top_E && bottom_E; top_E = top_E->next(), bottom_E = bottom_E->prev()) { + for (List::Element *top_E = full_selection.front(), *bottom_E = full_selection.back(); top_E && bottom_E; top_E = top_E->next(), bottom_E = bottom_E->prev()) { Node *top_node = top_E->get(); Node *bottom_node = bottom_E->get(); @@ -936,7 +937,7 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) { undo_redo->commit_action(); - NodePath np = selection.front()->get()->get_path(); + NodePath np = full_selection.front()->get()->get_path(); TreeItem *item = scene_tree->get_scene_tree()->get_item_with_metadata(np); callable_mp(scene_tree->get_scene_tree(), &Tree::scroll_to_item).call_deferred(item, false); } break; @@ -1057,13 +1058,13 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) { break; } - if (!_validate_no_foreign_selected(editor_selection->get_top_selected_node_list())) { + List selection = editor_selection->get_top_selected_node_list(); + if (!_validate_no_foreign_selected(selection)) { break; } - List nodes = editor_selection->get_top_selected_node_list(); HashSet nodeset; - for (Node *E : nodes) { + for (Node *E : selection) { nodeset.insert(E); } reparent_dialog->set_current(nodeset); @@ -1074,10 +1075,10 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) { break; } - List nodes = editor_selection->get_top_selected_node_list(); - ERR_FAIL_COND(nodes.size() != 1); + List selection = editor_selection->get_top_selected_node_list(); + ERR_FAIL_COND(selection.size() != 1); - Node *node = nodes.front()->get(); + Node *node = selection.front()->get(); Node *root = get_tree()->get_edited_scene_root(); if (node == root) { @@ -1160,32 +1161,32 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) { break; } - List remove_list = editor_selection->get_top_selected_node_list(); + List selection = editor_selection->get_top_selected_node_list(); - if (remove_list.is_empty()) { + if (selection.is_empty()) { return; } - if (!_validate_no_foreign_selected(editor_selection->get_top_selected_node_list())) { + if (!_validate_no_foreign_selected(selection)) { break; } bool allow_ask_delete_tracks = EDITOR_GET("docks/scene_tree/ask_before_deleting_related_animation_tracks").operator bool(); - bool has_tracks_to_delete = allow_ask_delete_tracks && _has_tracks_to_delete(edited_scene, remove_list); + bool has_tracks_to_delete = allow_ask_delete_tracks && _has_tracks_to_delete(edited_scene, selection); if (p_confirm_override && !has_tracks_to_delete) { _delete_confirm(); } else { String msg; - if (remove_list.size() > 1) { + if (selection.size() > 1) { bool any_children = false; - for (List::ConstIterator itr = remove_list.begin(); !any_children && itr != remove_list.end(); ++itr) { + for (List::ConstIterator itr = selection.begin(); !any_children && itr != selection.end(); ++itr) { any_children = (*itr)->get_child_count() > 0; } - msg = vformat(any_children ? TTR("Delete %d nodes and any children?") : TTR("Delete %d nodes?"), remove_list.size()); + msg = vformat(any_children ? TTR("Delete %d nodes and any children?") : TTR("Delete %d nodes?"), selection.size()); } else { if (!p_confirm_override) { - Node *node = remove_list.front()->get(); + Node *node = selection.front()->get(); if (node == editor_data->get_edited_scene_root()) { msg = vformat(TTR("Delete the root node \"%s\"?"), node->get_name()); } else if (!node->is_instance() && node->get_child_count() > 0) { @@ -1313,9 +1314,9 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) { } } break; case TOOL_OPEN_DOCUMENTATION: { - for (const Node *node : editor_selection->get_full_selected_node_list()) { + for (const Node *full_selection : editor_selection->get_full_selected_node_list()) { String class_name; - Ref