From fe0ace14c8be6ef02e2c4b3ac3cb7c2a2e12eced Mon Sep 17 00:00:00 2001 From: GZharun Date: Mon, 19 Jan 2015 17:50:16 +0200 Subject: [PATCH] [Summary] Next actions will now make a session dirty: Toggling inspector Toggling meter bridge Toggling mixer bridge Mouse tool change --- gtk2_ardour/ardour_ui.cc | 8 ++++++++ gtk2_ardour/ardour_ui.h | 1 + gtk2_ardour/ardour_ui_dialogs.cc | 4 ++++ gtk2_ardour/editor.cc | 8 ++++++++ gtk2_ardour/editor.h | 3 ++- gtk2_ardour/editor_mixer.cc | 3 +++ gtk2_ardour/editor_mouse.cc | 2 +- 7 files changed, 27 insertions(+), 2 deletions(-) diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc index d4233993a0..d4bb0863e3 100644 --- a/gtk2_ardour/ardour_ui.cc +++ b/gtk2_ardour/ardour_ui.cc @@ -2507,6 +2507,14 @@ ARDOUR_UI::save_state (const string & name, bool switch_to_it) } +void +ARDOUR_UI::set_session_dirty () +{ + if (_session) { + _session->set_dirty (); + } +} + void ARDOUR_UI::primary_clock_value_changed () { diff --git a/gtk2_ardour/ardour_ui.h b/gtk2_ardour/ardour_ui.h index 1b68534d99..51c22aaaae 100644 --- a/gtk2_ardour/ardour_ui.h +++ b/gtk2_ardour/ardour_ui.h @@ -188,6 +188,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr int save_session_state (const std::string & name = "", bool pending = false, bool switch_to_it = false); void save_session_gui_state (); int save_state (const std::string & state_name = "", bool switch_to_it = false); + void set_session_dirty (); static ARDOUR_UI *instance () { return theArdourUI; } static UIConfiguration *config () { return ui_config; } diff --git a/gtk2_ardour/ardour_ui_dialogs.cc b/gtk2_ardour/ardour_ui_dialogs.cc index 9469184194..5a3fb9645f 100644 --- a/gtk2_ardour/ardour_ui_dialogs.cc +++ b/gtk2_ardour/ardour_ui_dialogs.cc @@ -387,6 +387,8 @@ ARDOUR_UI::toggle_mixer_bridge_view () } else { editor->get_container ("mixer_bridge_view_home").hide (); } + + set_session_dirty (); } void @@ -421,6 +423,8 @@ ARDOUR_UI::show_meterbridge_view () editor->get_container ("edit_pane").show (); editor->get_container ("compact_meter_bridge_home").show (); } + + set_session_dirty (); } void diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc index f46d316568..7d7938df6d 100644 --- a/gtk2_ardour/editor.cc +++ b/gtk2_ardour/editor.cc @@ -4040,6 +4040,14 @@ Editor::session_state_saved (string) _snapshots->redisplay (); } +void +Editor::set_session_dirty () +{ + if (_session) { + _session->set_dirty (); + } +} + void Editor::update_tearoff_visibility() { diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h index a621661a8a..47e12cb12e 100644 --- a/gtk2_ardour/editor.h +++ b/gtk2_ardour/editor.h @@ -2016,7 +2016,8 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD bool on_key_release_event (GdkEventKey*); void session_state_saved (std::string); - + void set_session_dirty (); + Glib::RefPtr undo_action; Glib::RefPtr redo_action; diff --git a/gtk2_ardour/editor_mixer.cc b/gtk2_ardour/editor_mixer.cc index 247355843b..09426e70ab 100644 --- a/gtk2_ardour/editor_mixer.cc +++ b/gtk2_ardour/editor_mixer.cc @@ -118,6 +118,7 @@ Editor::show_editor_mixer (bool yn) if (track_views.empty()) { show_editor_mixer_when_tracks_arrive = true; + set_session_dirty (); return; } @@ -178,6 +179,8 @@ Editor::show_editor_mixer (bool yn) } } } + + set_session_dirty (); #ifdef GTKOSX /* XXX gtk problem here */ diff --git a/gtk2_ardour/editor_mouse.cc b/gtk2_ardour/editor_mouse.cc index 5f1a4f2008..936ffc07a5 100644 --- a/gtk2_ardour/editor_mouse.cc +++ b/gtk2_ardour/editor_mouse.cc @@ -350,7 +350,7 @@ Editor::mouse_mode_toggled (MouseMode m) mouse_mode = m; - instant_save (); + set_session_dirty (); /* this should generate a new enter event which will trigger the appropiate cursor.