diff options
Diffstat (limited to 'editor/gui/editor_dir_dialog.cpp')
-rw-r--r-- | editor/gui/editor_dir_dialog.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/editor/gui/editor_dir_dialog.cpp b/editor/gui/editor_dir_dialog.cpp index 23568a3c2a..481c8ed016 100644 --- a/editor/gui/editor_dir_dialog.cpp +++ b/editor/gui/editor_dir_dialog.cpp @@ -175,11 +175,14 @@ void EditorDirDialog::ok_pressed() { void EditorDirDialog::_make_dir() { TreeItem *ti = tree->get_selected(); ERR_FAIL_NULL(ti); - makedialog->config(ti->get_metadata(0)); + const String &directory = ti->get_metadata(0); + makedialog->config(directory, callable_mp(this, &EditorDirDialog::_make_dir_confirm).bind(directory), DirectoryCreateDialog::MODE_DIRECTORY, "new folder"); makedialog->popup_centered(); } -void EditorDirDialog::_make_dir_confirm(const String &p_path) { +void EditorDirDialog::_make_dir_confirm(const String &p_path, const String &p_base_dir) { + FileSystemDock::get_singleton()->create_directory(p_path, p_base_dir); + // Multiple level of directories can be created at once. String base_dir = p_path.get_base_dir(); while (true) { @@ -228,5 +231,4 @@ EditorDirDialog::EditorDirDialog() { makedialog = memnew(DirectoryCreateDialog); add_child(makedialog); - makedialog->connect("dir_created", callable_mp(this, &EditorDirDialog::_make_dir_confirm)); } |