summaryrefslogtreecommitdiff
path: root/editor/editor_export.cpp
diff options
context:
space:
mode:
authorMaganty Rushyendra <mrushyendra@yahoo.com.sg>2020-06-10 17:41:42 +0800
committerMaganty Rushyendra <mrushyendra@yahoo.com.sg>2020-06-11 08:25:24 +0800
commit44094b082d56daa2eab5a8f6c6d73f86d8b18d8b (patch)
treeecdf897bb75fb3e5b561b344bf31c86e0389b121 /editor/editor_export.cpp
parentffbea8aad11e8427b7a7f4929aedeee618baa133 (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.cpp19
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]);
+ }
}
}