From 2cd63a1ef06dc5880eb67ac268b2557a27b98390 Mon Sep 17 00:00:00 2001 From: kobewi Date: Wed, 8 Jun 2022 17:52:19 +0200 Subject: [PATCH] Made hidden ProjectSettings groups more explicit --- core/config/project_settings.cpp | 22 ++++++++++++++++++++-- core/config/project_settings.h | 2 ++ editor/editor_autoload_settings.cpp | 2 ++ editor/editor_plugin_settings.cpp | 2 ++ editor/import_defaults_editor.cpp | 2 ++ editor/shader_globals_editor.cpp | 2 ++ 6 files changed, 30 insertions(+), 2 deletions(-) diff --git a/core/config/project_settings.cpp b/core/config/project_settings.cpp index 1bfb7456627..9ffbac3553e 100644 --- a/core/config/project_settings.cpp +++ b/core/config/project_settings.cpp @@ -249,6 +249,11 @@ bool ProjectSettings::get_ignore_value_in_docs(const String &p_name) const { #endif } +void ProjectSettings::add_hidden_prefix(const String &p_prefix) { + ERR_FAIL_COND_MSG(hidden_prefixes.find(p_prefix) > -1, vformat("Hidden prefix '%s' already exists.", p_prefix)); + hidden_prefixes.push_back(p_prefix); +} + String ProjectSettings::globalize_path(const String &p_path) const { if (p_path.begins_with("res://")) { if (!resource_path.is_empty()) { @@ -388,7 +393,18 @@ void ProjectSettings::_get_property_list(List *p_list) const { vc.name = E.key; vc.order = v->order; vc.type = v->variant.get_type(); - if (v->internal || vc.name.begins_with("input/") || vc.name.begins_with("importer_defaults/") || vc.name.begins_with("import/") || vc.name.begins_with("autoload/") || vc.name.begins_with("editor_plugins/") || vc.name.begins_with("shader_globals/")) { + + bool internal = v->internal; + if (!internal) { + for (const String &F : hidden_prefixes) { + if (vc.name.begins_with(F)) { + internal = true; + break; + } + } + } + + if (internal) { vc.flags = PROPERTY_USAGE_STORAGE; } else { vc.flags = PROPERTY_USAGE_EDITOR | PROPERTY_USAGE_STORAGE; @@ -1382,11 +1398,13 @@ ProjectSettings::ProjectSettings() { GLOBAL_DEF_BASIC(PropertyInfo(Variant::INT, "rendering/textures/canvas_textures/default_texture_filter", PROPERTY_HINT_ENUM, "Nearest,Linear,Linear Mipmap,Nearest Mipmap"), 1); GLOBAL_DEF_BASIC(PropertyInfo(Variant::INT, "rendering/textures/canvas_textures/default_texture_repeat", PROPERTY_HINT_ENUM, "Disable,Enable,Mirror"), 0); - // These properties will not show up in the dialog nor in the documentation. If you want to exclude whole groups, see _get_property_list() method. + // These properties will not show up in the dialog. If you want to exclude whole groups, use add_hidden_prefix(). GLOBAL_DEF_INTERNAL("application/config/features", PackedStringArray()); GLOBAL_DEF_INTERNAL("internationalization/locale/translation_remaps", PackedStringArray()); GLOBAL_DEF_INTERNAL("internationalization/locale/translations", PackedStringArray()); GLOBAL_DEF_INTERNAL("internationalization/locale/translations_pot_files", PackedStringArray()); + + ProjectSettings::get_singleton()->add_hidden_prefix("input/"); } ProjectSettings::~ProjectSettings() { diff --git a/core/config/project_settings.h b/core/config/project_settings.h index dba4aa6822d..302df7e8d06 100644 --- a/core/config/project_settings.h +++ b/core/config/project_settings.h @@ -104,6 +104,7 @@ protected: HashSet custom_features; HashMap>> feature_overrides; + LocalVector hidden_prefixes; HashMap autoloads; Array global_class_list; @@ -168,6 +169,7 @@ public: void set_restart_if_changed(const String &p_name, bool p_restart); void set_ignore_value_in_docs(const String &p_name, bool p_ignore); bool get_ignore_value_in_docs(const String &p_name) const; + void add_hidden_prefix(const String &p_prefix); String get_project_data_dir_name() const; String get_project_data_path() const; diff --git a/editor/editor_autoload_settings.cpp b/editor/editor_autoload_settings.cpp index 7a1dc2e33b0..5bcef467f6f 100644 --- a/editor/editor_autoload_settings.cpp +++ b/editor/editor_autoload_settings.cpp @@ -816,6 +816,8 @@ void EditorAutoloadSettings::_bind_methods() { } EditorAutoloadSettings::EditorAutoloadSettings() { + ProjectSettings::get_singleton()->add_hidden_prefix("autoload/"); + // Make first cache List props; ProjectSettings::get_singleton()->get_property_list(&props); diff --git a/editor/editor_plugin_settings.cpp b/editor/editor_plugin_settings.cpp index 7f57619ac8d..453ae762662 100644 --- a/editor/editor_plugin_settings.cpp +++ b/editor/editor_plugin_settings.cpp @@ -205,6 +205,8 @@ void EditorPluginSettings::_bind_methods() { } EditorPluginSettings::EditorPluginSettings() { + ProjectSettings::get_singleton()->add_hidden_prefix("editor_plugins/"); + plugin_config_dialog = memnew(PluginConfigDialog); plugin_config_dialog->config(""); add_child(plugin_config_dialog); diff --git a/editor/import_defaults_editor.cpp b/editor/import_defaults_editor.cpp index 98a9bfe9dce..a2fbff48927 100644 --- a/editor/import_defaults_editor.cpp +++ b/editor/import_defaults_editor.cpp @@ -201,6 +201,8 @@ void ImportDefaultsEditor::_bind_methods() { } ImportDefaultsEditor::ImportDefaultsEditor() { + ProjectSettings::get_singleton()->add_hidden_prefix("importer_defaults/"); + HBoxContainer *hb = memnew(HBoxContainer); hb->add_child(memnew(Label(TTR("Importer:")))); importers = memnew(OptionButton); diff --git a/editor/shader_globals_editor.cpp b/editor/shader_globals_editor.cpp index 8e59e55b511..ead0eeeae35 100644 --- a/editor/shader_globals_editor.cpp +++ b/editor/shader_globals_editor.cpp @@ -424,6 +424,8 @@ void ShaderGlobalsEditor::_notification(int p_what) { } ShaderGlobalsEditor::ShaderGlobalsEditor() { + ProjectSettings::get_singleton()->add_hidden_prefix("shader_globals/"); + HBoxContainer *add_menu_hb = memnew(HBoxContainer); add_child(add_menu_hb);