From b2a14042d52b45ae0554f4146c700b18f50ee92f Mon Sep 17 00:00:00 2001 From: Catchawink Date: Sat, 14 Dec 2019 05:06:29 -0500 Subject: [PATCH] Fixed issues with using a relative path in the export window. Before this fix, opening relative export paths inside of an EditorFileDialog was not possible. This was fixed by modifying String::path_to_file() to save relative paths in EditorExportPreset::set_export_path() more appropriately and changing EditorFileDialog::set_current_dir() to open relative paths. --- core/ustring.cpp | 3 ++- editor/editor_file_dialog.cpp | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/core/ustring.cpp b/core/ustring.cpp index 6a1dc2295fa..345db0eb132 100644 --- a/core/ustring.cpp +++ b/core/ustring.cpp @@ -3792,7 +3792,8 @@ bool String::is_valid_float() const { String String::path_to_file(const String &p_path) const { - String src = this->replace("\\", "/").get_base_dir(); + // Don't get base dir for src, this is expected to be a dir already. + String src = this->replace("\\", "/"); String dst = p_path.replace("\\", "/").get_base_dir(); String rel = src.path_to(dst); if (rel == dst) // failed diff --git a/editor/editor_file_dialog.cpp b/editor/editor_file_dialog.cpp index 7fc989b5e95..03da065658f 100644 --- a/editor/editor_file_dialog.cpp +++ b/editor/editor_file_dialog.cpp @@ -958,6 +958,8 @@ String EditorFileDialog::get_current_path() const { } void EditorFileDialog::set_current_dir(const String &p_dir) { + if (p_dir.is_rel_path()) + dir_access->change_dir(OS::get_singleton()->get_resource_dir()); dir_access->change_dir(p_dir); update_dir(); invalidate();