From e7e3a25c1e2fcd871c91e5196dc836a4aec0b318 Mon Sep 17 00:00:00 2001 From: kobewi Date: Thu, 28 Nov 2024 13:31:51 +0100 Subject: [PATCH] Fix non-empty project folder confirmation dialog --- editor/project_manager/project_dialog.cpp | 14 ++++++++------ editor/project_manager/project_dialog.h | 1 + 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/editor/project_manager/project_dialog.cpp b/editor/project_manager/project_dialog.cpp index 8750ae87143..8adc0473d6c 100644 --- a/editor/project_manager/project_dialog.cpp +++ b/editor/project_manager/project_dialog.cpp @@ -488,12 +488,14 @@ void ProjectDialog::ok_pressed() { // Before we create a project, check that the target folder is empty. // If not, we need to ask the user if they're sure they want to do this. if (!is_folder_empty) { - ConfirmationDialog *cd = memnew(ConfirmationDialog); - cd->set_title(TTR("Warning: This folder is not empty")); - cd->set_text(TTR("You are about to create a Godot project in a non-empty folder.\nThe entire contents of this folder will be imported as project resources!\n\nAre you sure you wish to continue?")); - cd->get_ok_button()->connect(SceneStringName(pressed), callable_mp(this, &ProjectDialog::_nonempty_confirmation_ok_pressed)); - get_parent()->add_child(cd); - cd->popup_centered(); + if (!nonempty_confirmation) { + nonempty_confirmation = memnew(ConfirmationDialog); + nonempty_confirmation->set_title(TTR("Warning: This folder is not empty")); + nonempty_confirmation->set_text(TTR("You are about to create a Godot project in a non-empty folder.\nThe entire contents of this folder will be imported as project resources!\n\nAre you sure you wish to continue?")); + nonempty_confirmation->get_ok_button()->connect(SceneStringName(pressed), callable_mp(this, &ProjectDialog::_nonempty_confirmation_ok_pressed)); + add_child(nonempty_confirmation); + } + nonempty_confirmation->popup_centered(); return; } diff --git a/editor/project_manager/project_dialog.h b/editor/project_manager/project_dialog.h index 9cc1cd15767..8955a87422a 100644 --- a/editor/project_manager/project_dialog.h +++ b/editor/project_manager/project_dialog.h @@ -65,6 +65,7 @@ private: Mode mode = MODE_NEW; bool is_folder_empty = true; + ConfirmationDialog *nonempty_confirmation = nullptr; CheckButton *create_dir = nullptr; Button *project_browse = nullptr;