diff options
Diffstat (limited to 'editor/editor_dir_dialog.cpp')
-rw-r--r-- | editor/editor_dir_dialog.cpp | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/editor/editor_dir_dialog.cpp b/editor/editor_dir_dialog.cpp index f181c04004..8494991892 100644 --- a/editor/editor_dir_dialog.cpp +++ b/editor/editor_dir_dialog.cpp @@ -156,10 +156,18 @@ void EditorDirDialog::_make_dir_confirm() { String dir = ti->get_metadata(0); - DirAccessRef d = DirAccess::open(dir); - ERR_FAIL_COND_MSG(!d, "Cannot open directory '" + dir + "'."); - Error err = d->make_dir(makedirname->get_text()); + Ref<DirAccess> d = DirAccess::open(dir); + ERR_FAIL_COND_MSG(d.is_null(), "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; + } + + Error err = d->make_dir(stripped_dirname); if (err != OK) { mkdirerr->popup_centered(Size2(250, 80) * EDSCALE); } else { @@ -175,8 +183,6 @@ void EditorDirDialog::_bind_methods() { } EditorDirDialog::EditorDirDialog() { - updating = false; - set_title(TTR("Choose a Directory")); set_hide_on_ok(false); @@ -206,6 +212,4 @@ EditorDirDialog::EditorDirDialog() { add_child(mkdirerr); get_ok_button()->set_text(TTR("Choose")); - - must_reload = false; } |