Przeglądaj źródła

Fix file extensions persisting in file dialog after export

This caused issues if one decided to export many formats in a row.
The new file extension would be appended to the previous one.

Now, the filename is retained without its extension for successive exports.

Fixes #7291
Robbie Cooper 8 lat temu
rodzic
commit
24fe3bd605
2 zmienionych plików z 8 dodań i 0 usunięć
  1. 6 0
      editor/project_export.cpp
  2. 2 0
      editor/project_export.h

+ 6 - 0
editor/project_export.cpp

@@ -717,6 +717,7 @@ void ProjectExportDialog::_export_project() {
 
 	export_project->set_access(FileDialog::ACCESS_FILESYSTEM);
 	export_project->clear_filters();
+	export_project->set_current_file(default_filename);
 	String extension = platform->get_binary_extension();
 	if (extension != String()) {
 		export_project->add_filter("*." + extension + " ; " + platform->get_name() + " Export");
@@ -726,6 +727,9 @@ void ProjectExportDialog::_export_project() {
 }
 
 void ProjectExportDialog::_export_project_to_path(const String &p_path) {
+	// Save this name for use in future exports (but drop the file extension)
+	default_filename = p_path.get_basename().get_file();
+	EditorSettings::get_singleton()->set_project_metadata("export_options", "default_filename", default_filename);
 
 	Ref<EditorExportPreset> current = EditorExport::get_singleton()->get_export_preset(presets->get_current());
 	ERR_FAIL_COND(current.is_null());
@@ -970,6 +974,8 @@ ProjectExportDialog::ProjectExportDialog() {
 	set_hide_on_ok(false);
 
 	editor_icons = "EditorIcons";
+
+	default_filename = EditorSettings::get_singleton()->get_project_metadata("export_options", "default_filename", String());
 }
 
 ProjectExportDialog::~ProjectExportDialog() {

+ 2 - 0
editor/project_export.h

@@ -99,6 +99,8 @@ private:
 	Label *export_error;
 	HBoxContainer *export_templates_error;
 
+	String default_filename;
+
 	void _patch_selected(const String &p_path);
 	void _patch_deleted();