diff options
author | Maganty Rushyendra <mrushyendra@yahoo.com.sg> | 2020-06-10 17:41:42 +0800 |
---|---|---|
committer | Maganty Rushyendra <mrushyendra@yahoo.com.sg> | 2020-06-11 08:25:24 +0800 |
commit | 44094b082d56daa2eab5a8f6c6d73f86d8b18d8b (patch) | |
tree | ecdf897bb75fb3e5b561b344bf31c86e0389b121 /editor/editor_export.cpp | |
parent | ffbea8aad11e8427b7a7f4929aedeee618baa133 (diff) |
Account for file deletion and renaming in Export Presets
Ensure that presets are updated with the latest files when
starting up or opening the Project Export dialog. Fixes the
error where Godot would attempt to export deleted files that
were previously selected.
Diffstat (limited to 'editor/editor_export.cpp')
-rw-r--r-- | editor/editor_export.cpp | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/editor/editor_export.cpp b/editor/editor_export.cpp index 716ead9afc..25594bf7c8 100644 --- a/editor/editor_export.cpp +++ b/editor/editor_export.cpp @@ -90,6 +90,19 @@ Ref<EditorExportPlatform> EditorExportPreset::get_platform() const { return platform; } +void EditorExportPreset::update_files_to_export() { + Vector<String> to_remove; + for (Set<String>::Element *E = selected_files.front(); E; E = E->next()) { + if (!FileAccess::exists(E->get())) { + to_remove.push_back(E->get()); + } + } + for (int i = 0; i < to_remove.size(); ++i) { + selected_files.erase(to_remove[i]); + } + EditorExport::singleton->save_presets(); +} + Vector<String> EditorExportPreset::get_files_to_export() const { Vector<String> files; for (Set<String>::Element *E = selected_files.front(); E; E = E->next()) { @@ -1298,7 +1311,11 @@ void EditorExport::load_config() { Vector<String> files = config->get_value(section, "export_files"); for (int i = 0; i < files.size(); i++) { - preset->add_export_file(files[i]); + if (!FileAccess::exists(files[i])) { + preset->remove_export_file(files[i]); + } else { + preset->add_export_file(files[i]); + } } } |