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
This commit is contained in:
Robbie Cooper 2017-10-28 04:57:29 -04:00 committed by Andreas Haas
parent 71a3e71b61
commit 24fe3bd605
2 changed files with 8 additions and 0 deletions

View File

@ -717,6 +717,7 @@ void ProjectExportDialog::_export_project() {
export_project->set_access(FileDialog::ACCESS_FILESYSTEM); export_project->set_access(FileDialog::ACCESS_FILESYSTEM);
export_project->clear_filters(); export_project->clear_filters();
export_project->set_current_file(default_filename);
String extension = platform->get_binary_extension(); String extension = platform->get_binary_extension();
if (extension != String()) { if (extension != String()) {
export_project->add_filter("*." + extension + " ; " + platform->get_name() + " Export"); 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) { 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()); Ref<EditorExportPreset> current = EditorExport::get_singleton()->get_export_preset(presets->get_current());
ERR_FAIL_COND(current.is_null()); ERR_FAIL_COND(current.is_null());
@ -970,6 +974,8 @@ ProjectExportDialog::ProjectExportDialog() {
set_hide_on_ok(false); set_hide_on_ok(false);
editor_icons = "EditorIcons"; editor_icons = "EditorIcons";
default_filename = EditorSettings::get_singleton()->get_project_metadata("export_options", "default_filename", String());
} }
ProjectExportDialog::~ProjectExportDialog() { ProjectExportDialog::~ProjectExportDialog() {

View File

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