Merge pull request #75048 from KoBeWi/it's_ok_to_be_loaded

Allow loading custom ProjectSettings instance
This commit is contained in:
Rémi Verschelde 2024-04-26 15:12:51 +02:00
commit c1907f2d30
No known key found for this signature in database
GPG key ID: C3336907360768E1
3 changed files with 20 additions and 9 deletions

View file

@ -802,18 +802,20 @@ void ProjectManager::_apply_project_tags() {
}
}
ConfigFile cfg;
const String project_godot = project_list->get_selected_projects()[0].path.path_join("project.godot");
Error err = cfg.load(project_godot);
if (err != OK) {
tag_edit_error->set_text(vformat(TTR("Couldn't load project at '%s' (error %d). It may be missing or corrupted."), project_godot, err));
ProjectSettings *cfg = memnew(ProjectSettings(project_godot));
if (!cfg->is_project_loaded()) {
memdelete(cfg);
tag_edit_error->set_text(vformat(TTR("Couldn't load project at '%s'. It may be missing or corrupted."), project_godot));
tag_edit_error->show();
callable_mp((Window *)tag_manage_dialog, &Window::show).call_deferred(); // Make sure the dialog does not disappear.
return;
} else {
tags.sort();
cfg.set_value("application", "config/tags", tags);
err = cfg.save(project_godot);
cfg->set("application/config/tags", tags);
Error err = cfg->save_custom(project_godot);
memdelete(cfg);
if (err != OK) {
tag_edit_error->set_text(vformat(TTR("Couldn't save project at '%s' (error %d)."), project_godot, err));
tag_edit_error->show();