diff options
author | RĂ©mi Verschelde <remi@verschelde.fr> | 2022-04-05 23:47:28 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-04-05 23:47:28 +0200 |
commit | 956189e0d2066dc6ac7a2cadc18d9cf7d6a912f1 (patch) | |
tree | bd053284a863d0db78c56e191eeaeefdb63f8087 /editor/editor_dir_dialog.cpp | |
parent | d405761ee7856c9e5a52904925a9cf4fe26fd1de (diff) | |
parent | da2b5da0c54e9e940221e602f58ecb08a8f4efec (diff) |
Merge pull request #59920 from marstaik/fix_project_manager
Fix Project Manager hard crashes due to invalid access to Editor Nodes
Diffstat (limited to 'editor/editor_dir_dialog.cpp')
-rw-r--r-- | editor/editor_dir_dialog.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/editor/editor_dir_dialog.cpp b/editor/editor_dir_dialog.cpp index 866f28c03b..9fabde93ef 100644 --- a/editor/editor_dir_dialog.cpp +++ b/editor/editor_dir_dialog.cpp @@ -156,15 +156,18 @@ void EditorDirDialog::_make_dir_confirm() { String dir = ti->get_metadata(0); - if (EditorFileSystem::get_singleton()->get_filesystem_path(dir + makedirname->get_text())) { + DirAccessRef d = DirAccess::open(dir); + ERR_FAIL_COND_MSG(!d, "Cannot open directory '" + dir + "'."); + + const String stripped_dirname = makedirname->get_text().strip_edges(); + + if (d->dir_exists(stripped_dirname)) { mkdirerr->set_text(TTR("Could not create folder. File with that name already exists.")); mkdirerr->popup_centered(); return; } - DirAccessRef d = DirAccess::open(dir); - ERR_FAIL_COND_MSG(!d, "Cannot open directory '" + dir + "'."); - Error err = d->make_dir(makedirname->get_text()); + Error err = d->make_dir(stripped_dirname); if (err != OK) { mkdirerr->popup_centered(Size2(250, 80) * EDSCALE); } else { |