Browse Source

Improve the node deletion confirmation message

- Add "the root node" in the beginning if the selected node
  is the current scene's root
- Add "and its children" at the end of the message if the node
  has at least one child and is not an instanced scene
Hugo Locurcio 6 years ago
parent
commit
fd1b5cc39f
1 changed files with 6 additions and 1 deletions
  1. 6 1
      editor/scene_tree_dock.cpp

+ 6 - 1
editor/scene_tree_dock.cpp

@@ -759,8 +759,13 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) {
 				_delete_confirm();
 
 			} else {
-				if (remove_list.size() > 1) {
+				if (remove_list.size() >= 2) {
 					delete_dialog->set_text(vformat(TTR("Delete %d nodes?"), remove_list.size()));
+				} else if (remove_list.size() == 1 && remove_list[0] == editor_data->get_edited_scene_root()) {
+					delete_dialog->set_text(vformat(TTR("Delete the root node \"%s\"?"), remove_list[0]->get_name()));
+				} else if (remove_list.size() == 1 && remove_list[0]->get_filename() == "" && remove_list[0]->get_child_count() >= 1) {
+					// Display this message only for non-instanced scenes
+					delete_dialog->set_text(vformat(TTR("Delete node \"%s\" and its children?"), remove_list[0]->get_name()));
 				} else {
 					delete_dialog->set_text(vformat(TTR("Delete node \"%s\"?"), remove_list[0]->get_name()));
 				}