summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRĂ©mi Verschelde <rverschelde@gmail.com>2019-07-01 09:27:01 +0200
committerGitHub <noreply@github.com>2019-07-01 09:27:01 +0200
commitbbb725836d67c5bdae020db078afaca27a597d36 (patch)
tree84e7a5651e97c9e9249987061063079bd765dbb6
parentb62d315a7fea66357dbe3346218a720128121779 (diff)
parent90b2415343287f67586956c798d4b7a63544158f (diff)
Merge pull request #28701 from SonerSound/master
Export paths are now saved as relative paths
-rw-r--r--editor/editor_properties.cpp15
-rw-r--r--editor/project_export.cpp13
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]);