Merge pull request #104102 from ryevdokimov/reload-saved-scene-fixes

Focus `Don't Save` in `Reload Saved Scene` and don't save unmodified scenes
This commit is contained in:
Thaddeus Crews
2025-03-17 10:52:28 -05:00
2 changed files with 13 additions and 9 deletions

View File

@ -3007,16 +3007,19 @@ void EditorNode::_menu_option_confirm(int p_option, bool p_confirmed) {
break;
}
if (unsaved_cache && !p_confirmed) {
confirmation->set_ok_button_text(TTR("Save & Reload"));
unsaved_message = _get_unsaved_scene_dialog_text(scene_filename, started_timestamp);
confirmation->set_text(unsaved_message + "\n\n" + TTR("Save before reloading the scene?"));
confirmation->popup_centered();
break;
if (unsaved_cache) {
if (!p_confirmed) {
confirmation->set_ok_button_text(TTRC("Save & Reload"));
unsaved_message = _get_unsaved_scene_dialog_text(scene_filename, started_timestamp);
confirmation->set_text(unsaved_message + "\n\n" + TTR("Save before reloading the scene?"));
confirmation->popup_centered();
confirmation_button->grab_focus();
break;
} else {
_save_scene_with_preview(scene_filename);
}
}
_save_scene_with_preview(scene_filename);
_discard_changes();
} break;
@ -7809,7 +7812,7 @@ EditorNode::EditorNode() {
gui_base->add_child(orphan_resources);
confirmation = memnew(ConfirmationDialog);
confirmation->add_button(TTRC("Don't Save"), DisplayServer::get_singleton()->get_swap_cancel_ok(), "discard");
confirmation_button = confirmation->add_button(TTRC("Don't Save"), DisplayServer::get_singleton()->get_swap_cancel_ok(), "discard");
gui_base->add_child(confirmation);
confirmation->set_min_size(Vector2(450.0 * EDSCALE, 0));
confirmation->connect(SceneStringName(confirmed), callable_mp(this, &EditorNode::_menu_confirm_current));