summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkobewi <kobewi4e@gmail.com>2022-06-08 17:52:19 +0200
committerkobewi <kobewi4e@gmail.com>2023-08-23 22:43:43 +0200
commit2cd63a1ef06dc5880eb67ac268b2557a27b98390 (patch)
tree4231b0f410e958290afa65b75fbc6ca5b7cccd85
parent6758a7f8c07d1f4c8ec4f052ded6d26402967ebe (diff)
downloadredot-engine-2cd63a1ef06dc5880eb67ac268b2557a27b98390.tar.gz
Made hidden ProjectSettings groups more explicit
-rw-r--r--core/config/project_settings.cpp22
-rw-r--r--core/config/project_settings.h2
-rw-r--r--editor/editor_autoload_settings.cpp2
-rw-r--r--editor/editor_plugin_settings.cpp2
-rw-r--r--editor/import_defaults_editor.cpp2
-rw-r--r--editor/shader_globals_editor.cpp2
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);