Commit 44094b08 by Maganty Rushyendra

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.
parent ffbea8aa
......@@ -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]);
}
}
}
......
......@@ -94,6 +94,8 @@ public:
bool has(const StringName &p_property) const { return values.has(p_property); }
void update_files_to_export();
Vector<String> get_files_to_export() const;
void add_export_file(const String &p_path);
......
......@@ -163,6 +163,7 @@ void ProjectExportDialog::_update_presets() {
if (preset->is_runnable()) {
name += " (" + TTR("Runnable") + ")";
}
preset->update_files_to_export();
presets->add_item(name, preset->get_platform()->get_logo());
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment