Browse Source

Allow absolute file paths in file dialogs

miremrie 3 years ago
parent
commit
a5e30c0228
2 changed files with 4 additions and 2 deletions
  1. 2 1
      editor/editor_file_dialog.cpp
  2. 2 1
      scene/gui/file_dialog.cpp

+ 2 - 1
editor/editor_file_dialog.cpp

@@ -394,7 +394,8 @@ void EditorFileDialog::_action_pressed() {
 		return;
 	}
 
-	String f = dir_access->get_current_dir().plus_file(file->get_text());
+	String file_text = file->get_text();
+	String f = file_text.is_absolute_path() ? file_text : dir_access->get_current_dir().plus_file(file_text);
 
 	if ((mode == FILE_MODE_OPEN_ANY || mode == FILE_MODE_OPEN_FILE) && dir_access->file_exists(f)) {
 		_save_to_recent();

+ 2 - 1
scene/gui/file_dialog.cpp

@@ -262,7 +262,8 @@ void FileDialog::_action_pressed() {
 		return;
 	}
 
-	String f = dir_access->get_current_dir().plus_file(file->get_text());
+	String file_text = file->get_text();
+	String f = file_text.is_absolute_path() ? file_text : dir_access->get_current_dir().plus_file(file_text);
 
 	if ((mode == FILE_MODE_OPEN_ANY || mode == FILE_MODE_OPEN_FILE) && dir_access->file_exists(f)) {
 		emit_signal(SNAME("file_selected"), f);