|
@@ -288,6 +288,9 @@ void ProjectManager::_update_theme(bool p_skip_creation) {
|
|
|
open_options_popup->set_item_icon(1, get_editor_theme_icon(SNAME("NodeWarning")));
|
|
|
}
|
|
|
|
|
|
+ // Dialogs
|
|
|
+ migration_guide_button->set_button_icon(get_editor_theme_icon(SNAME("ExternalLink")));
|
|
|
+
|
|
|
// Asset library popup.
|
|
|
if (asset_library) {
|
|
|
// Removes extra border margins.
|
|
@@ -567,6 +570,7 @@ void ProjectManager::_open_selected_projects_check_warnings() {
|
|
|
ask_update_label->set_horizontal_alignment(HORIZONTAL_ALIGNMENT_LEFT); // Reset in case of previous center align.
|
|
|
ask_update_backup->set_pressed(false);
|
|
|
full_convert_button->hide();
|
|
|
+ migration_guide_button->hide();
|
|
|
ask_update_backup->hide();
|
|
|
|
|
|
ask_update_settings->get_ok_button()->set_text("OK");
|
|
@@ -581,14 +585,14 @@ void ProjectManager::_open_selected_projects_check_warnings() {
|
|
|
if (config_version < ProjectSettings::CONFIG_VERSION) {
|
|
|
if (config_version == GODOT4_CONFIG_VERSION - 1 && ProjectSettings::CONFIG_VERSION == GODOT4_CONFIG_VERSION) { // Conversion from Godot 3 to 4.
|
|
|
full_convert_button->show();
|
|
|
- ask_update_backup->show();
|
|
|
ask_update_label->set_text(vformat(TTR("The selected project \"%s\" was generated by Godot 3.x, and needs to be converted for Godot 4.x.\n\nProject path: %s\n\nYou have three options:\n- Convert only the configuration file (\"project.godot\"). Use this to open the project without attempting to convert its scenes, resources and scripts.\n- Convert the entire project including its scenes, resources and scripts (recommended if you are upgrading).\n- Do nothing and go back.\n\nWarning: If you select a conversion option, you won't be able to open the project with previous versions of the engine anymore."), project.project_name, project.path));
|
|
|
ask_update_settings->get_ok_button()->set_text(TTRC("Convert project.godot Only"));
|
|
|
} else {
|
|
|
- ask_update_backup->show();
|
|
|
ask_update_label->set_text(vformat(TTR("The selected project \"%s\" was generated by an older engine version, and needs to be converted for this version.\n\nProject path: %s\n\nDo you want to convert it?\n\nWarning: You won't be able to open the project with previous versions of the engine anymore."), project.project_name, project.path));
|
|
|
ask_update_settings->get_ok_button()->set_text(TTRC("Convert project.godot"));
|
|
|
}
|
|
|
+ ask_update_backup->show();
|
|
|
+ migration_guide_button->show();
|
|
|
ask_update_settings->popup_centered(popup_min_size);
|
|
|
ask_update_settings->get_cancel_button()->grab_focus(); // To prevent accidents.
|
|
|
return;
|
|
@@ -614,6 +618,7 @@ void ProjectManager::_open_selected_projects_check_warnings() {
|
|
|
i--;
|
|
|
} else if (ProjectList::project_feature_looks_like_version(feature)) {
|
|
|
ask_update_backup->show();
|
|
|
+ migration_guide_button->show();
|
|
|
version_convert_feature = feature;
|
|
|
warning_message += vformat(TTR("Warning: This project was last edited in Godot %s. Opening will change it to Godot %s.\n\n"), Variant(feature), Variant(GODOT_VERSION_BRANCH));
|
|
|
unsupported_features.remove_at(i);
|
|
@@ -1088,6 +1093,11 @@ void ProjectManager::_full_convert_button_pressed() {
|
|
|
ask_full_convert_dialog->get_cancel_button()->grab_focus();
|
|
|
}
|
|
|
|
|
|
+void ProjectManager::_migration_guide_button_pressed() {
|
|
|
+ const String url = vformat("%s/tutorials/migrating/index.html", GODOT_VERSION_DOCS_URL);
|
|
|
+ OS::get_singleton()->shell_open(url);
|
|
|
+}
|
|
|
+
|
|
|
void ProjectManager::_perform_full_project_conversion() {
|
|
|
Vector<ProjectList::Item> selected_list = project_list->get_selected_projects();
|
|
|
if (selected_list.is_empty()) {
|
|
@@ -1727,6 +1737,8 @@ ProjectManager::ProjectManager() {
|
|
|
}
|
|
|
full_convert_button = ask_update_settings->add_button(TTRC("Convert Full Project"), ed_swap_cancel_ok != 2);
|
|
|
full_convert_button->connect(SceneStringName(pressed), callable_mp(this, &ProjectManager::_full_convert_button_pressed));
|
|
|
+ migration_guide_button = ask_update_settings->add_button(TTRC("See Migration Guide"), ed_swap_cancel_ok != 2);
|
|
|
+ migration_guide_button->connect(SceneStringName(pressed), callable_mp(this, &ProjectManager::_migration_guide_button_pressed));
|
|
|
|
|
|
ask_full_convert_dialog = memnew(ConfirmationDialog);
|
|
|
ask_full_convert_dialog->set_autowrap(true);
|