mirror of
				https://github.com/godotengine/godot.git
				synced 2025-11-04 07:31:16 +00:00 
			
		
		
		
	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.
This commit is contained in:
		
							parent
							
								
									ffbea8aad1
								
							
						
					
					
						commit
						44094b082d
					
				
					 3 changed files with 21 additions and 1 deletions
				
			
		| 
						 | 
				
			
			@ -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());
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue