From 0f26ae93f2710b25a07f0b37f2a80b4bac88a3b9 Mon Sep 17 00:00:00 2001 From: emre0altan Date: Sun, 25 Feb 2024 19:44:44 +0000 Subject: [PATCH] Save scene and global checkbox options of History window, fixes #88432 --- editor/history_dock.cpp | 15 +++++++++++++-- editor/history_dock.h | 1 + 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/editor/history_dock.cpp b/editor/history_dock.cpp index 7375abb65ae1..6bbc46e76c8c 100644 --- a/editor/history_dock.cpp +++ b/editor/history_dock.cpp @@ -31,6 +31,7 @@ #include "history_dock.h" #include "editor/editor_node.h" +#include "editor/editor_settings.h" #include "editor/editor_string_names.h" #include "editor/editor_undo_redo_manager.h" #include "scene/gui/check_box.h" @@ -219,6 +220,11 @@ void HistoryDock::_notification(int p_notification) { } } +void HistoryDock::save_options() { + EditorSettings::get_singleton()->set_project_metadata("history", "include_scene", current_scene_checkbox->is_pressed()); + EditorSettings::get_singleton()->set_project_metadata("history", "include_global", global_history_checkbox->is_pressed()); +} + HistoryDock::HistoryDock() { set_name("History"); @@ -229,23 +235,28 @@ HistoryDock::HistoryDock() { HBoxContainer *mode_hb = memnew(HBoxContainer); add_child(mode_hb); + bool include_scene = EditorSettings::get_singleton()->get_project_metadata("history", "include_scene", true); + bool include_global = EditorSettings::get_singleton()->get_project_metadata("history", "include_global", true); + current_scene_checkbox = memnew(CheckBox); mode_hb->add_child(current_scene_checkbox); current_scene_checkbox->set_flat(true); - current_scene_checkbox->set_pressed(true); + current_scene_checkbox->set_pressed(include_scene); current_scene_checkbox->set_text(TTR("Scene")); current_scene_checkbox->set_h_size_flags(SIZE_EXPAND_FILL); current_scene_checkbox->set_clip_text(true); current_scene_checkbox->connect("toggled", callable_mp(this, &HistoryDock::refresh_history).unbind(1)); + current_scene_checkbox->connect("toggled", callable_mp(this, &HistoryDock::save_options).unbind(1)); global_history_checkbox = memnew(CheckBox); mode_hb->add_child(global_history_checkbox); global_history_checkbox->set_flat(true); - global_history_checkbox->set_pressed(true); + global_history_checkbox->set_pressed(include_global); global_history_checkbox->set_text(TTR("Global")); global_history_checkbox->set_h_size_flags(SIZE_EXPAND_FILL); global_history_checkbox->set_clip_text(true); global_history_checkbox->connect("toggled", callable_mp(this, &HistoryDock::refresh_history).unbind(1)); + global_history_checkbox->connect("toggled", callable_mp(this, &HistoryDock::save_options).unbind(1)); action_list = memnew(ItemList); action_list->set_auto_translate_mode(AUTO_TRANSLATE_MODE_DISABLED); diff --git a/editor/history_dock.h b/editor/history_dock.h index d507f19b0748..0a023bdd0592 100644 --- a/editor/history_dock.h +++ b/editor/history_dock.h @@ -53,6 +53,7 @@ class HistoryDock : public VBoxContainer { void refresh_history(); void on_version_changed(); void refresh_version(); + void save_options(); protected: void _notification(int p_notification);