diff options
author | kobewi <kobewi4e@gmail.com> | 2022-06-08 17:52:19 +0200 |
---|---|---|
committer | kobewi <kobewi4e@gmail.com> | 2023-08-23 22:43:43 +0200 |
commit | 2cd63a1ef06dc5880eb67ac268b2557a27b98390 (patch) | |
tree | 4231b0f410e958290afa65b75fbc6ca5b7cccd85 | |
parent | 6758a7f8c07d1f4c8ec4f052ded6d26402967ebe (diff) | |
download | redot-engine-2cd63a1ef06dc5880eb67ac268b2557a27b98390.tar.gz |
Made hidden ProjectSettings groups more explicit
-rw-r--r-- | core/config/project_settings.cpp | 22 | ||||
-rw-r--r-- | core/config/project_settings.h | 2 | ||||
-rw-r--r-- | editor/editor_autoload_settings.cpp | 2 | ||||
-rw-r--r-- | editor/editor_plugin_settings.cpp | 2 | ||||
-rw-r--r-- | editor/import_defaults_editor.cpp | 2 | ||||
-rw-r--r-- | 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 1bfb745662..9ffbac3553 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<PropertyInfo> *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 dba4aa6822..302df7e8d0 100644 --- a/core/config/project_settings.h +++ b/core/config/project_settings.h @@ -104,6 +104,7 @@ protected: HashSet<String> custom_features; HashMap<StringName, LocalVector<Pair<StringName, StringName>>> feature_overrides; + LocalVector<String> hidden_prefixes; HashMap<StringName, AutoloadInfo> 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 7a1dc2e33b..5bcef467f6 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<PropertyInfo> props; ProjectSettings::get_singleton()->get_property_list(&props); diff --git a/editor/editor_plugin_settings.cpp b/editor/editor_plugin_settings.cpp index 7f57619ac8..453ae76266 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 98a9bfe9dc..a2fbff4892 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 8e59e55b51..ead0eeeae3 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); |