浏览代码

Merge pull request #66236 from KoBeWi/empty_words

Automatically use class name for empty renames
Rémi Verschelde 3 年之前
父节点
当前提交
08bd94e4ba
共有 1 个文件被更改,包括 9 次插入6 次删除
  1. 9 6
      editor/scene_tree_editor.cpp

+ 9 - 6
editor/scene_tree_editor.cpp

@@ -30,6 +30,7 @@
 
 
 #include "scene_tree_editor.h"
 #include "scene_tree_editor.h"
 
 
+#include "core/config/project_settings.h"
 #include "core/object/message_queue.h"
 #include "core/object/message_queue.h"
 #include "core/string/print_string.h"
 #include "core/string/print_string.h"
 #include "editor/editor_file_system.h"
 #include "editor/editor_file_system.h"
@@ -942,14 +943,16 @@ void SceneTreeEditor::_renamed() {
 	Node *n = get_node(np);
 	Node *n = get_node(np);
 	ERR_FAIL_COND(!n);
 	ERR_FAIL_COND(!n);
 
 
-	// Empty node names are not allowed, so resets it to previous text and show warning
-	if (which->get_text(0).strip_edges().is_empty()) {
-		which->set_text(0, n->get_name());
-		EditorNode::get_singleton()->show_warning(TTR("No name provided."));
-		return;
+	String raw_new_name = which->get_text(0);
+	if (raw_new_name.strip_edges().is_empty()) {
+		// If name is empty, fallback to class name.
+		if (GLOBAL_GET("editor/node_naming/name_casing").operator int() != NAME_CASING_PASCAL_CASE) {
+			raw_new_name = Node::adjust_name_casing(n->get_class());
+		} else {
+			raw_new_name = n->get_class();
+		}
 	}
 	}
 
 
-	String raw_new_name = which->get_text(0);
 	String new_name = raw_new_name.validate_node_name();
 	String new_name = raw_new_name.validate_node_name();
 
 
 	if (new_name != raw_new_name) {
 	if (new_name != raw_new_name) {