Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Made hidden ProjectSettings groups more explicit #61818

Merged
merged 1 commit into from
Aug 29, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 20 additions & 2 deletions core/config/project_settings.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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()) {
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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() {
Expand Down
2 changes: 2 additions & 0 deletions core/config/project_settings.h
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,7 @@ class ProjectSettings : public Object {
HashSet<String> custom_features;
HashMap<StringName, LocalVector<Pair<StringName, StringName>>> feature_overrides;

LocalVector<String> hidden_prefixes;
HashMap<StringName, AutoloadInfo> autoloads;

Array global_class_list;
Expand Down Expand Up @@ -168,6 +169,7 @@ class ProjectSettings : public Object {
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;
Expand Down
2 changes: 2 additions & 0 deletions editor/editor_autoload_settings.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
2 changes: 2 additions & 0 deletions editor/editor_plugin_settings.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
2 changes: 2 additions & 0 deletions editor/import_defaults_editor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
2 changes: 2 additions & 0 deletions editor/shader_globals_editor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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);

Expand Down