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);