Merge pull request #71055 from EricEzaM/66424-fix-undo-redo

Fix Undo/Redo not working until Scene menu is opened.
This commit is contained in:
Rémi Verschelde 2023-01-08 22:45:04 +01:00
commit 1722947c75
No known key found for this signature in database
GPG Key ID: C3336907360768E1
2 changed files with 12 additions and 4 deletions

View File

@ -1123,6 +1123,12 @@ void EditorNode::_version_button_pressed() {
DisplayServer::get_singleton()->clipboard_set(version_btn->get_meta(META_TEXT_TO_COPY)); DisplayServer::get_singleton()->clipboard_set(version_btn->get_meta(META_TEXT_TO_COPY));
} }
void EditorNode::_update_undo_redo_allowed() {
Ref<EditorUndoRedoManager> undo_redo = get_undo_redo();
file_menu->set_item_disabled(file_menu->get_item_index(EDIT_UNDO), !undo_redo->has_undo());
file_menu->set_item_disabled(file_menu->get_item_index(EDIT_REDO), !undo_redo->has_redo());
}
void EditorNode::_node_renamed() { void EditorNode::_node_renamed() {
if (InspectorDock::get_inspector_singleton()) { if (InspectorDock::get_inspector_singleton()) {
InspectorDock::get_inspector_singleton()->update_tree(); InspectorDock::get_inspector_singleton()->update_tree();
@ -3251,10 +3257,7 @@ void EditorNode::_update_file_menu_opened() {
reopen_closed_scene_sc->set_name(TTR("Reopen Closed Scene")); reopen_closed_scene_sc->set_name(TTR("Reopen Closed Scene"));
file_menu->set_item_disabled(file_menu->get_item_index(FILE_OPEN_PREV), previous_scenes.is_empty()); file_menu->set_item_disabled(file_menu->get_item_index(FILE_OPEN_PREV), previous_scenes.is_empty());
_update_undo_redo_allowed();
Ref<EditorUndoRedoManager> undo_redo = editor_data.get_undo_redo();
file_menu->set_item_disabled(file_menu->get_item_index(EDIT_UNDO), !undo_redo->has_undo());
file_menu->set_item_disabled(file_menu->get_item_index(EDIT_REDO), !undo_redo->has_redo());
} }
void EditorNode::_update_file_menu_closed() { void EditorNode::_update_file_menu_closed() {
@ -6053,6 +6056,9 @@ EditorNode::EditorNode() {
singleton = this; singleton = this;
get_undo_redo()->connect("version_changed", callable_mp(this, &EditorNode::_update_undo_redo_allowed));
get_undo_redo()->connect("history_changed", callable_mp(this, &EditorNode::_update_undo_redo_allowed));
TranslationServer::get_singleton()->set_enabled(false); TranslationServer::get_singleton()->set_enabled(false);
// Load settings. // Load settings.
if (!EditorSettings::get_singleton()) { if (!EditorSettings::get_singleton()) {

View File

@ -577,6 +577,8 @@ private:
void _titlebar_resized(); void _titlebar_resized();
void _version_button_pressed(); void _version_button_pressed();
void _update_undo_redo_allowed();
int _save_external_resources(); int _save_external_resources();
bool _validate_scene_recursive(const String &p_filename, Node *p_node); bool _validate_scene_recursive(const String &p_filename, Node *p_node);