Skip to content

Commit f923b58

Browse files
committed
Correctly handle failures to open a project
1 parent 28e8a4c commit f923b58

1 file changed

Lines changed: 8 additions & 4 deletions

File tree

editor/project_manager.cpp

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -474,12 +474,12 @@ void ProjectManager::_open_selected_projects() {
474474
loading_label->show();
475475

476476
const HashSet<String> &selected_list = project_list->get_selected_project_keys();
477-
478477
for (const String &path : selected_list) {
479478
String conf = path.path_join("project.godot");
480479

481480
if (!FileAccess::exists(conf)) {
482-
_show_error(vformat(TTR("Can't open project at '%s'."), path));
481+
loading_label->hide();
482+
_show_error(vformat(TTR("Can't open project at '%s'.\nProject file doesn't exist or is inaccessible."), path));
483483
return;
484484
}
485485

@@ -497,7 +497,12 @@ void ProjectManager::_open_selected_projects() {
497497
args.push_back("--editor");
498498

499499
Error err = OS::get_singleton()->create_instance(args);
500-
ERR_FAIL_COND(err);
500+
if (err != OK) {
501+
loading_label->hide();
502+
_show_error(vformat(TTR("Can't open project at '%s'.\nFailed to start the editor."), path));
503+
ERR_PRINT(vformat("Failed to start an editor instance for the project at '%s', error code %d.", path, err));
504+
return;
505+
}
501506
}
502507

503508
project_list->project_opening_initiated = true;
@@ -508,7 +513,6 @@ void ProjectManager::_open_selected_projects() {
508513

509514
void ProjectManager::_open_selected_projects_ask() {
510515
const HashSet<String> &selected_list = project_list->get_selected_project_keys();
511-
512516
if (selected_list.size() < 1) {
513517
return;
514518
}

0 commit comments

Comments
 (0)