diff options
author | RĂ©mi Verschelde <remi@verschelde.fr> | 2022-01-18 13:24:58 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-01-18 13:24:58 +0100 |
commit | 0a67b4639699277648a23f5a47d4b023d951bd6d (patch) | |
tree | 7bc3ee665878d08dadd038fafc7577d9d9d138a7 /editor/editor_node.cpp | |
parent | 9912492e937d2454a21ec7465538aab2431ac249 (diff) | |
parent | c7f6315a8fbc39aa9915ade97f5d3f549c605870 (diff) |
Merge pull request #52597 from Jummit/scene_casing_setting
Diffstat (limited to 'editor/editor_node.cpp')
-rw-r--r-- | editor/editor_node.cpp | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp index 5d868777e7..11efe7202e 100644 --- a/editor/editor_node.cpp +++ b/editor/editor_node.cpp @@ -2593,13 +2593,21 @@ void EditorNode::_menu_option_confirm(int p_option, bool p_confirmed) { file->set_current_path(path.replacen("." + ext, "." + extensions.front()->get())); } } - } else { - String existing; - if (extensions.size()) { - String root_name(scene->get_name()); - existing = root_name + "." + extensions.front()->get().to_lower(); + } else if (extensions.size()) { + String root_name = scene->get_name(); + // Very similar to node naming logic. + switch (ProjectSettings::get_singleton()->get("editor/scene/scene_naming").operator int()) { + case SCENE_NAME_CASING_AUTO: + // Use casing of the root node. + break; + case SCENE_NAME_CASING_PASCAL_CASE: { + root_name = root_name.capitalize().replace(" ", ""); + } break; + case SCENE_NAME_CASING_SNAKE_CASE: + root_name = root_name.capitalize().replace(" ", "").replace("-", "_").camelcase_to_underscore(); + break; } - file->set_current_path(existing); + file->set_current_path(root_name + "." + extensions.front()->get().to_lower()); } file->popup_file_dialog(); file->set_title(TTR("Save Scene As...")); @@ -5673,6 +5681,8 @@ void EditorNode::_feature_profile_changed() { } void EditorNode::_bind_methods() { + GLOBAL_DEF("editor/scene/scene_naming", SCENE_NAME_CASING_SNAKE_CASE); + ProjectSettings::get_singleton()->set_custom_property_info("editor/scene/scene_naming", PropertyInfo(Variant::INT, "editor/scene/scene_naming", PROPERTY_HINT_ENUM, "Auto,PascalCase,snake_case")); ClassDB::bind_method("_editor_select", &EditorNode::_editor_select); ClassDB::bind_method("_node_renamed", &EditorNode::_node_renamed); ClassDB::bind_method("edit_node", &EditorNode::edit_node); |