Add GLOBAL_DEF_INTERNAL to hide specific settings

This commit is contained in:
kobewi 2022-06-06 15:22:57 +02:00
parent 4d2ecde3e2
commit 83014f8901
4 changed files with 30 additions and 11 deletions

View File

@ -205,6 +205,11 @@ void ProjectSettings::set_as_basic(const String &p_name, bool p_basic) {
props[p_name].basic = p_basic; props[p_name].basic = p_basic;
} }
void ProjectSettings::set_as_internal(const String &p_name, bool p_internal) {
ERR_FAIL_COND_MSG(!props.has(p_name), "Request for nonexistent project setting: " + p_name + ".");
props[p_name].internal = p_internal;
}
void ProjectSettings::set_ignore_value_in_docs(const String &p_name, bool p_ignore) { void ProjectSettings::set_ignore_value_in_docs(const String &p_name, bool p_ignore) {
ERR_FAIL_COND_MSG(!props.has(p_name), "Request for nonexistent project setting: " + p_name + "."); ERR_FAIL_COND_MSG(!props.has(p_name), "Request for nonexistent project setting: " + p_name + ".");
#ifdef DEBUG_METHODS_ENABLED #ifdef DEBUG_METHODS_ENABLED
@ -344,7 +349,7 @@ void ProjectSettings::_get_property_list(List<PropertyInfo> *p_list) const {
vc.name = E.key; vc.name = E.key;
vc.order = v->order; vc.order = v->order;
vc.type = v->variant.get_type(); vc.type = v->variant.get_type();
if (vc.name.begins_with("input/") || vc.name.begins_with("import/") || vc.name.begins_with("export/") || vc.name.begins_with("/remap") || vc.name.begins_with("/locale") || vc.name.begins_with("/autoload")) { 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/")) {
vc.flags = PROPERTY_USAGE_STORAGE; vc.flags = PROPERTY_USAGE_STORAGE;
} else { } else {
vc.flags = PROPERTY_USAGE_EDITOR | PROPERTY_USAGE_STORAGE; vc.flags = PROPERTY_USAGE_EDITOR | PROPERTY_USAGE_STORAGE;
@ -890,7 +895,7 @@ Error ProjectSettings::_save_custom_bnd(const String &p_file) { // add other par
Error ProjectSettings::save_custom(const String &p_path, const CustomMap &p_custom, const Vector<String> &p_custom_features, bool p_merge_with_current) { Error ProjectSettings::save_custom(const String &p_path, const CustomMap &p_custom, const Vector<String> &p_custom_features, bool p_merge_with_current) {
ERR_FAIL_COND_V_MSG(p_path.is_empty(), ERR_INVALID_PARAMETER, "Project settings save path cannot be empty."); ERR_FAIL_COND_V_MSG(p_path.is_empty(), ERR_INVALID_PARAMETER, "Project settings save path cannot be empty.");
PackedStringArray project_features = has_setting("application/config/features") ? (PackedStringArray)get_setting("application/config/features") : PackedStringArray(); PackedStringArray project_features = get_setting("application/config/features");
// If there is no feature list currently present, force one to generate. // If there is no feature list currently present, force one to generate.
if (project_features.is_empty()) { if (project_features.is_empty()) {
project_features = ProjectSettings::get_required_features(); project_features = ProjectSettings::get_required_features();
@ -994,7 +999,7 @@ Error ProjectSettings::save_custom(const String &p_path, const CustomMap &p_cust
} }
} }
Variant _GLOBAL_DEF(const String &p_var, const Variant &p_default, bool p_restart_if_changed, bool p_ignore_value_in_docs, bool p_basic) { Variant _GLOBAL_DEF(const String &p_var, const Variant &p_default, bool p_restart_if_changed, bool p_ignore_value_in_docs, bool p_basic, bool p_internal) {
Variant ret; Variant ret;
if (!ProjectSettings::get_singleton()->has_setting(p_var)) { if (!ProjectSettings::get_singleton()->has_setting(p_var)) {
ProjectSettings::get_singleton()->set(p_var, p_default); ProjectSettings::get_singleton()->set(p_var, p_default);
@ -1006,6 +1011,7 @@ Variant _GLOBAL_DEF(const String &p_var, const Variant &p_default, bool p_restar
ProjectSettings::get_singleton()->set_as_basic(p_var, p_basic); ProjectSettings::get_singleton()->set_as_basic(p_var, p_basic);
ProjectSettings::get_singleton()->set_restart_if_changed(p_var, p_restart_if_changed); ProjectSettings::get_singleton()->set_restart_if_changed(p_var, p_restart_if_changed);
ProjectSettings::get_singleton()->set_ignore_value_in_docs(p_var, p_ignore_value_in_docs); ProjectSettings::get_singleton()->set_ignore_value_in_docs(p_var, p_ignore_value_in_docs);
ProjectSettings::get_singleton()->set_as_internal(p_var, p_internal);
return ret; return ret;
} }
@ -1151,7 +1157,7 @@ void ProjectSettings::_add_builtin_input_map() {
action["events"] = events; action["events"] = events;
String action_name = "input/" + E.key; String action_name = "input/" + E.key;
GLOBAL_DEF(action_name, action); GLOBAL_DEF_INTERNAL(action_name, action);
input_presets.push_back(action_name); input_presets.push_back(action_name);
} }
} }
@ -1235,6 +1241,11 @@ ProjectSettings::ProjectSettings() {
GLOBAL_DEF("compression/formats/gzip/compression_level", Compression::gzip_level); GLOBAL_DEF("compression/formats/gzip/compression_level", Compression::gzip_level);
custom_prop_info["compression/formats/gzip/compression_level"] = PropertyInfo(Variant::INT, "compression/formats/gzip/compression_level", PROPERTY_HINT_RANGE, "-1,9,1"); custom_prop_info["compression/formats/gzip/compression_level"] = PropertyInfo(Variant::INT, "compression/formats/gzip/compression_level", PROPERTY_HINT_RANGE, "-1,9,1");
// 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.
GLOBAL_DEF_INTERNAL("application/config/features", PackedStringArray());
GLOBAL_DEF_INTERNAL("internationalization/locale/translation_remaps", PackedStringArray());
GLOBAL_DEF_INTERNAL("internationalization/locale/translations", PackedStringArray());
} }
ProjectSettings::~ProjectSettings() { ProjectSettings::~ProjectSettings() {

View File

@ -62,6 +62,7 @@ protected:
int order = 0; int order = 0;
bool persist = false; bool persist = false;
bool basic = false; bool basic = false;
bool internal = false;
Variant variant; Variant variant;
Variant initial; Variant initial;
bool hide_from_editor = false; bool hide_from_editor = false;
@ -141,6 +142,7 @@ public:
void set_initial_value(const String &p_name, const Variant &p_value); void set_initial_value(const String &p_name, const Variant &p_value);
void set_as_basic(const String &p_name, bool p_basic); void set_as_basic(const String &p_name, bool p_basic);
void set_as_internal(const String &p_name, bool p_internal);
void set_restart_if_changed(const String &p_name, bool p_restart); 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); void set_ignore_value_in_docs(const String &p_name, bool p_ignore);
bool get_ignore_value_in_docs(const String &p_name) const; bool get_ignore_value_in_docs(const String &p_name) const;
@ -191,8 +193,8 @@ public:
~ProjectSettings(); ~ProjectSettings();
}; };
//not a macro any longer // Not a macro any longer.
Variant _GLOBAL_DEF(const String &p_var, const Variant &p_default, bool p_restart_if_changed = false, bool p_ignore_value_in_docs = false, bool p_basic = false); Variant _GLOBAL_DEF(const String &p_var, const Variant &p_default, bool p_restart_if_changed = false, bool p_ignore_value_in_docs = false, bool p_basic = false, bool p_internal = false);
#define GLOBAL_DEF(m_var, m_value) _GLOBAL_DEF(m_var, m_value) #define GLOBAL_DEF(m_var, m_value) _GLOBAL_DEF(m_var, m_value)
#define GLOBAL_DEF_RST(m_var, m_value) _GLOBAL_DEF(m_var, m_value, true) #define GLOBAL_DEF_RST(m_var, m_value) _GLOBAL_DEF(m_var, m_value, true)
#define GLOBAL_DEF_NOVAL(m_var, m_value) _GLOBAL_DEF(m_var, m_value, false, true) #define GLOBAL_DEF_NOVAL(m_var, m_value) _GLOBAL_DEF(m_var, m_value, false, true)
@ -204,4 +206,6 @@ Variant _GLOBAL_DEF(const String &p_var, const Variant &p_default, bool p_restar
#define GLOBAL_DEF_NOVAL_BASIC(m_var, m_value) _GLOBAL_DEF(m_var, m_value, false, true, true) #define GLOBAL_DEF_NOVAL_BASIC(m_var, m_value) _GLOBAL_DEF(m_var, m_value, false, true, true)
#define GLOBAL_DEF_RST_NOVAL_BASIC(m_var, m_value) _GLOBAL_DEF(m_var, m_value, true, true, true) #define GLOBAL_DEF_RST_NOVAL_BASIC(m_var, m_value) _GLOBAL_DEF(m_var, m_value, true, true, true)
#define GLOBAL_DEF_INTERNAL(m_var, m_value) _GLOBAL_DEF(m_var, m_value, false, false, false, true)
#endif // PROJECT_SETTINGS_H #endif // PROJECT_SETTINGS_H

View File

@ -216,6 +216,9 @@
<member name="application/config/description" type="String" setter="" getter="" default="&quot;&quot;"> <member name="application/config/description" type="String" setter="" getter="" default="&quot;&quot;">
The project's description, displayed as a tooltip in the Project Manager when hovering the project. The project's description, displayed as a tooltip in the Project Manager when hovering the project.
</member> </member>
<member name="application/config/features" type="PackedStringArray" setter="" getter="">
List of internal features associated with the project, like [code]Double Precision[/code] or [code]C#[/code]. Not to be confused with feature tags.
</member>
<member name="application/config/icon" type="String" setter="" getter="" default="&quot;&quot;"> <member name="application/config/icon" type="String" setter="" getter="" default="&quot;&quot;">
Icon used for the project, set when project loads. Exporters will also use this icon when possible. Icon used for the project, set when project loads. Exporters will also use this icon when possible.
</member> </member>
@ -811,6 +814,12 @@
<member name="internationalization/locale/test" type="String" setter="" getter="" default="&quot;&quot;"> <member name="internationalization/locale/test" type="String" setter="" getter="" default="&quot;&quot;">
If non-empty, this locale will be used when running the project from the editor. If non-empty, this locale will be used when running the project from the editor.
</member> </member>
<member name="internationalization/locale/translation_remaps" type="PackedStringArray" setter="" getter="">
Locale-dependent resource remaps. Edit them in the "Localization" tab of Project Settings editor.
</member>
<member name="internationalization/locale/translations" type="PackedStringArray" setter="" getter="">
List of translation files available in the project. Edit them in the "Localization" tab of Project Settings editor.
</member>
<member name="internationalization/pseudolocalization/double_vowels" type="bool" setter="" getter="" default="false"> <member name="internationalization/pseudolocalization/double_vowels" type="bool" setter="" getter="" default="false">
Double vowels in strings during pseudolocalization to simulate the lengthening of text due to localization. Double vowels in strings during pseudolocalization to simulate the lengthening of text due to localization.
</member> </member>

View File

@ -250,11 +250,6 @@ void SectionedInspector::update_category_list() {
continue; continue;
} }
// Filter out unnecessary ProjectSettings sections, as they already have their dedicated tabs.
if (pi.name.begins_with("autoload") || pi.name.begins_with("editor_plugins") || pi.name.begins_with("shader_globals")) {
continue;
}
if (!filter.is_empty() && !_property_path_matches(pi.name, filter, name_style)) { if (!filter.is_empty() && !_property_path_matches(pi.name, filter, name_style)) {
continue; continue;
} }