aboutsummaryrefslogtreecommitdiff
path: root/editor/project_manager.cpp
diff options
context:
space:
mode:
authorRémi Verschelde2018-02-19 14:53:59 +0100
committerHein-Pieter van Braam2018-02-22 12:19:28 +0100
commitf55b376d7815bee578a84d50322766276b9a5727 (patch)
tree4dbf5a8749b52a5fd70748c31956674ff4c23732 /editor/project_manager.cpp
parentfdac09a0aa0a682b1ffd39ae15c7bf8a44e189d6 (diff)
downloadgodot-f55b376d7815bee578a84d50322766276b9a5727.tar.gz
godot-f55b376d7815bee578a84d50322766276b9a5727.tar.zst
godot-f55b376d7815bee578a84d50322766276b9a5727.zip
Improve error reporting of ProjectSettings::setup()
And use it to better report errors in the console and project manager when a project.godot file is corrupted. Fixes #14963. (cherry picked from commit 7839076f95679c85e7adfdccdd671b2927c82f2f)
Diffstat (limited to 'editor/project_manager.cpp')
-rw-r--r--editor/project_manager.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/editor/project_manager.cpp b/editor/project_manager.cpp
index da283b16d..9c3b09608 100644
--- a/editor/project_manager.cpp
+++ b/editor/project_manager.cpp
@@ -304,8 +304,9 @@ private:
ProjectSettings *current = memnew(ProjectSettings);
- if (current->setup(dir, "")) {
- set_message(TTR("Couldn't get project.godot in project path."), MESSAGE_ERROR);
+ int err = current->setup(dir, "");
+ if (err != OK) {
+ set_message(vformat(TTR("Couldn't load project.godot in project path (error %d). It may be missing or corrupted."), err), MESSAGE_ERROR);
} else {
ProjectSettings::CustomMap edited_settings;
edited_settings["application/config/name"] = project_name->get_text();
@@ -530,8 +531,9 @@ public:
ProjectSettings *current = memnew(ProjectSettings);
- if (current->setup(project_path->get_text(), "")) {
- set_message(TTR("Couldn't get project.godot in the project path."), MESSAGE_ERROR);
+ int err = current->setup(project_path->get_text(), "");
+ if (err != OK) {
+ set_message(vformat(TTR("Couldn't load project.godot in project path (error %d). It may be missing or corrupted."), err), MESSAGE_ERROR);
status_rect->show();
msg->show();
get_ok()->set_disabled(true);