From 8ca3043a28bd9b2bb7738ec2a443b774f01cba08 Mon Sep 17 00:00:00 2001 From: Relintai Date: Fri, 29 Jul 2022 10:45:12 +0200 Subject: [PATCH] Ported: ProjectSettings: Ensure 'editor/' settings aren't nested Having a mix of settings with and without subcategory makes the 'Editor' section stand out with a weird UX, as instead of simply being a foldable section like the others, it also holds its own top-level settings and is therefore selectable. This wasn't the case in 3.4, and is fixed in 4.0 by refactoring, so for 3.5 we should preserve the 3.4 UX, even if it's not the best. - akien-mga https://github.com/godotengine/godot/commit/acd4a01b8cd8f75c13c2a055f51f7b5ad4026eb3 --- core/project_settings.cpp | 6 +++--- doc/classes/ProjectSettings.xml | 12 ++++++------ editor/editor_node.cpp | 10 +--------- 3 files changed, 10 insertions(+), 18 deletions(-) diff --git a/core/project_settings.cpp b/core/project_settings.cpp index 59787f4f9..e58dd64f6 100644 --- a/core/project_settings.cpp +++ b/core/project_settings.cpp @@ -1066,15 +1066,15 @@ ProjectSettings::ProjectSettings() { GLOBAL_DEF("editor/main_run_args", ""); + GLOBAL_DEF("editor/scene_naming", 0); // Sync enum values with EditorNode. + ProjectSettings::get_singleton()->set_custom_property_info("editor/scene_naming", PropertyInfo(Variant::INT, "editor/scene_naming", PROPERTY_HINT_ENUM, "Auto,PascalCase,snake_case")); + GLOBAL_DEF("editor/search_in_file_extensions", extensions); custom_prop_info["editor/search_in_file_extensions"] = PropertyInfo(Variant::POOL_STRING_ARRAY, "editor/search_in_file_extensions"); GLOBAL_DEF("editor/script_templates_search_path", "res://script_templates"); custom_prop_info["editor/script_templates_search_path"] = PropertyInfo(Variant::STRING, "editor/script_templates_search_path", PROPERTY_HINT_DIR); - GLOBAL_DEF("editor/version_control/autoload_on_startup", false); - GLOBAL_DEF("editor/version_control/plugin_name", ""); - action = Dictionary(); action["deadzone"] = Variant(0.5f); events = Array(); diff --git a/doc/classes/ProjectSettings.xml b/doc/classes/ProjectSettings.xml index f465d7edd..af3850fe5 100644 --- a/doc/classes/ProjectSettings.xml +++ b/doc/classes/ProjectSettings.xml @@ -527,18 +527,18 @@ prime-run %command% [/codeblock] + + Default naming style for scene files to infer from their root nodes. Possible options are: + - [code]0[/code] (Auto): Uses the scene root name as is without changing its casing. + - [code]1[/code] (PascalCase): Converts the scene root name to PascalCase casing. + - [code]2[/code] (snake_case): Converts the scene root name to snake_case casing. + Search path for project-specific script templates. Godot will search for script templates both in the editor-specific path and in this project-specific path. Text-based file extensions to include in the script editor's "Find in Files" feature. You can add e.g. [code]tscn[/code] if you wish to also parse your scene files, especially if you use built-in scripts which are serialized in the scene files. - - Load the previously opened VCS plugin when the editor starts up. This is set to [code]true[/code] whenever a new VCS plugin is initialized. - - - Last loaded VCS plugin name. Used to autoload the plugin when the editor starts up. - diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp index 5a7f44367..3d1ef907d 100644 --- a/editor/editor_node.cpp +++ b/editor/editor_node.cpp @@ -2376,7 +2376,7 @@ void EditorNode::_menu_option_confirm(int p_option, bool p_confirmed) { } 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()) { + switch (ProjectSettings::get_singleton()->get("editor/scene_naming").operator int()) { case SCENE_NAME_CASING_AUTO: // Use casing of the root node. break; @@ -5483,9 +5483,6 @@ void EditorNode::_project_settings_changed() { } void EditorNode::_bind_methods() { - GLOBAL_DEF("editor/scene/scene_naming", SCENE_NAME_CASING_AUTO); - 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("_menu_option", &EditorNode::_menu_option); ClassDB::bind_method("_tool_menu_option", &EditorNode::_tool_menu_option); ClassDB::bind_method("_menu_confirm_current", &EditorNode::_menu_confirm_current); @@ -5853,11 +5850,6 @@ EditorNode::EditorNode() { EDITOR_DEF("interface/inspector/default_color_picker_mode", 0); EditorSettings::get_singleton()->add_property_hint(PropertyInfo(Variant::INT, "interface/inspector/default_color_picker_mode", PROPERTY_HINT_ENUM, "RGB,HSV,RAW", PROPERTY_USAGE_DEFAULT)); EDITOR_DEF("run/auto_save/save_before_running", true); - EDITOR_DEF("version_control/username", ""); - EDITOR_DEF("version_control/ssh_public_key_path", ""); - EditorSettings::get_singleton()->add_property_hint(PropertyInfo(Variant::STRING, "version_control/ssh_public_key_path", PROPERTY_HINT_GLOBAL_FILE)); - EDITOR_DEF("version_control/ssh_private_key_path", ""); - EditorSettings::get_singleton()->add_property_hint(PropertyInfo(Variant::STRING, "version_control/ssh_private_key_path", PROPERTY_HINT_GLOBAL_FILE)); theme_base = memnew(Control); add_child(theme_base);