From 24fe3bd605957ce803c0641a469dc3242c242238 Mon Sep 17 00:00:00 2001 From: Robbie Cooper Date: Sat, 28 Oct 2017 04:57:29 -0400 Subject: [PATCH] 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 --- editor/project_export.cpp | 6 ++++++ editor/project_export.h | 2 ++ 2 files changed, 8 insertions(+) diff --git a/editor/project_export.cpp b/editor/project_export.cpp index dda2851166a..6500b10a3ad 100644 --- a/editor/project_export.cpp +++ b/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 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() { diff --git a/editor/project_export.h b/editor/project_export.h index 288b0c290fc..b258112fa8e 100644 --- a/editor/project_export.h +++ b/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();