diff options
author | RĂ©mi Verschelde <rverschelde@gmail.com> | 2019-07-01 09:27:01 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-07-01 09:27:01 +0200 |
commit | bbb725836d67c5bdae020db078afaca27a597d36 (patch) | |
tree | 84e7a5651e97c9e9249987061063079bd765dbb6 | |
parent | b62d315a7fea66357dbe3346218a720128121779 (diff) | |
parent | 90b2415343287f67586956c798d4b7a63544158f (diff) |
Merge pull request #28701 from SonerSound/master
Export paths are now saved as relative paths
-rw-r--r-- | editor/editor_properties.cpp | 15 | ||||
-rw-r--r-- | editor/project_export.cpp | 13 |
2 files changed, 25 insertions, 3 deletions
diff --git a/editor/editor_properties.cpp b/editor/editor_properties.cpp index 659893a1b6..a8ef563368 100644 --- a/editor/editor_properties.cpp +++ b/editor/editor_properties.cpp @@ -208,7 +208,13 @@ EditorPropertyTextEnum::EditorPropertyTextEnum() { void EditorPropertyPath::_path_selected(const String &p_path) { - emit_changed(get_edited_property(), p_path); + String final_path = p_path; + if (final_path.is_abs_path()) { + String res_path = OS::get_singleton()->get_resource_dir() + "/"; + final_path = res_path.path_to_file(final_path); + } + + emit_changed(get_edited_property(), final_path); update_property(); } void EditorPropertyPath::_path_pressed() { @@ -221,6 +227,13 @@ void EditorPropertyPath::_path_pressed() { } String full_path = get_edited_object()->get(get_edited_property()); + if (full_path.is_rel_path()) { + + if (!DirAccess::exists(full_path.get_base_dir())) { + DirAccessRef da(DirAccess::create(DirAccess::ACCESS_FILESYSTEM)); + da->make_dir_recursive(full_path.get_base_dir()); + } + } dialog->clear_filters(); diff --git a/editor/project_export.cpp b/editor/project_export.cpp index 956da92c35..c78a81dbe0 100644 --- a/editor/project_export.cpp +++ b/editor/project_export.cpp @@ -931,8 +931,17 @@ void ProjectExportDialog::_export_project() { export_project->add_filter("*." + extension_list[i] + " ; " + platform->get_name() + " Export"); } - if (current->get_export_path() != "") { - export_project->set_current_path(current->get_export_path()); + String current_preset_export_path = current->get_export_path(); + + if (current_preset_export_path != "") { + + if (!DirAccess::exists(current_preset_export_path.get_base_dir())) { + + DirAccessRef da(DirAccess::create(DirAccess::ACCESS_FILESYSTEM)); + da->make_dir_recursive(current_preset_export_path.get_base_dir()); + } + + export_project->set_current_path(current_preset_export_path); } else { if (extension_list.size() >= 1) { export_project->set_current_file(default_filename + "." + extension_list[0]); |