diff options
Diffstat (limited to 'editor/export/editor_export.cpp')
-rw-r--r-- | editor/export/editor_export.cpp | 34 |
1 files changed, 28 insertions, 6 deletions
diff --git a/editor/export/editor_export.cpp b/editor/export/editor_export.cpp index 3f192342a1..c6faefc45f 100644 --- a/editor/export/editor_export.cpp +++ b/editor/export/editor_export.cpp @@ -37,7 +37,9 @@ EditorExport *EditorExport::singleton = nullptr; void EditorExport::_save() { Ref<ConfigFile> config; + Ref<ConfigFile> credentials; config.instantiate(); + credentials.instantiate(); for (int i = 0; i < export_presets.size(); i++) { Ref<EditorExportPreset> preset = export_presets[i]; String section = "preset." + itos(i); @@ -83,16 +85,21 @@ void EditorExport::_save() { config->set_value(section, "encryption_exclude_filters", preset->get_enc_ex_filter()); config->set_value(section, "encrypt_pck", preset->get_enc_pck()); config->set_value(section, "encrypt_directory", preset->get_enc_directory()); - config->set_value(section, "script_encryption_key", preset->get_script_encryption_key()); + credentials->set_value(section, "script_encryption_key", preset->get_script_encryption_key()); String option_section = "preset." + itos(i) + ".options"; for (const PropertyInfo &E : preset->get_properties()) { - config->set_value(option_section, E.name, preset->get(E.name)); + if (E.usage & PROPERTY_USAGE_SECRET) { + credentials->set_value(option_section, E.name, preset->get(E.name)); + } else { + config->set_value(option_section, E.name, preset->get(E.name)); + } } } config->save("res://export_presets.cfg"); + credentials->save("res://.godot/export_credentials.cfg"); } void EditorExport::save_presets() { @@ -202,6 +209,13 @@ void EditorExport::load_config() { return; } + Ref<ConfigFile> credentials; + credentials.instantiate(); + err = credentials->load("res://.godot/export_credentials.cfg"); + if (!(err == OK || err == ERR_FILE_NOT_FOUND)) { + return; + } + block_save = true; int index = 0; @@ -284,22 +298,30 @@ void EditorExport::load_config() { if (config->has_section_key(section, "encryption_exclude_filters")) { preset->set_enc_ex_filter(config->get_value(section, "encryption_exclude_filters")); } - if (config->has_section_key(section, "script_encryption_key")) { - preset->set_script_encryption_key(config->get_value(section, "script_encryption_key")); + if (credentials->has_section_key(section, "script_encryption_key")) { + preset->set_script_encryption_key(credentials->get_value(section, "script_encryption_key")); } String option_section = "preset." + itos(index) + ".options"; List<String> options; - config->get_section_keys(option_section, &options); for (const String &E : options) { Variant value = config->get_value(option_section, E); - preset->set(E, value); } + if (credentials->has_section(option_section)) { + options.clear(); + credentials->get_section_keys(option_section, &options); + + for (const String &E : options) { + Variant value = credentials->get_value(option_section, E); + preset->set(E, value); + } + } + add_export_preset(preset); index++; } |