From 835b874e1e0a211659563646af5f91e0d3fdab8d Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Tue, 6 Sep 2016 16:56:46 -0400 Subject: add ActionManager::rec_sensitive_actions and put "add track/bus" in this group, which is disabled during active recording --- gtk2_ardour/actions.cc | 1 + gtk2_ardour/actions.h | 1 + gtk2_ardour/ardour_ui.cc | 15 ++++++++++----- gtk2_ardour/ardour_ui_ed.cc | 1 + 4 files changed, 13 insertions(+), 5 deletions(-) (limited to 'gtk2_ardour') diff --git a/gtk2_ardour/actions.cc b/gtk2_ardour/actions.cc index 1edbcafaa4..28367ff3f3 100644 --- a/gtk2_ardour/actions.cc +++ b/gtk2_ardour/actions.cc @@ -62,6 +62,7 @@ RelatedActions ActionManager::engine_sensitive_actions; RelatedActions ActionManager::engine_opposite_sensitive_actions; RelatedActions ActionManager::transport_sensitive_actions; RelatedActions ActionManager::edit_point_in_region_sensitive_actions; +RelatedActions ActionManager::rec_sensitive_actions; void ActionManager::init () diff --git a/gtk2_ardour/actions.h b/gtk2_ardour/actions.h index 6900e8392a..ec867e9bd0 100644 --- a/gtk2_ardour/actions.h +++ b/gtk2_ardour/actions.h @@ -51,6 +51,7 @@ namespace ActionManager { extern std::vector > engine_sensitive_actions; extern std::vector > engine_opposite_sensitive_actions; extern std::vector > edit_point_in_region_sensitive_actions; + extern std::vector > rec_sensitive_actions; extern void map_some_state (const char* group, const char* action, bool (ARDOUR::RCConfiguration::*get)() const); extern void map_some_state (const char* group, const char* action, bool (UIConfiguration::*get)() const); diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc index a53bcf167f..ee7d40ffab 100644 --- a/gtk2_ardour/ardour_ui.cc +++ b/gtk2_ardour/ardour_ui.cc @@ -4982,16 +4982,21 @@ ARDOUR_UI::record_state_changed () { ENSURE_GUI_THREAD (*this, &ARDOUR_UI::record_state_changed); - if (!_session || !big_clock_window) { + if (!_session) { /* why bother - the clock isn't visible */ return; } - if (_session->record_status () == Session::Recording && _session->have_rec_enabled_track ()) { - big_clock->set_active (true); - } else { - big_clock->set_active (false); + ActionManager::set_sensitive (ActionManager::rec_sensitive_actions, !_session->actively_recording()); + + if (big_clock_window) { + if (_session->record_status () == Session::Recording && _session->have_rec_enabled_track ()) { + big_clock->set_active (true); + } else { + big_clock->set_active (false); + } } + } bool diff --git a/gtk2_ardour/ardour_ui_ed.cc b/gtk2_ardour/ardour_ui_ed.cc index dceb61e73b..b8f7468f87 100644 --- a/gtk2_ardour/ardour_ui_ed.cc +++ b/gtk2_ardour/ardour_ui_ed.cc @@ -159,6 +159,7 @@ ARDOUR_UI::install_actions () act = global_actions.register_action (main_actions, X_("AddTrackBus"), _("Add Track or Bus..."), sigc::mem_fun(*this, &ARDOUR_UI::add_route)); ActionManager::session_sensitive_actions.push_back (act); ActionManager::write_sensitive_actions.push_back (act); + ActionManager::rec_sensitive_actions.push_back (act); act = global_actions.register_action (main_actions, X_("duplicate-routes"), _("Duplicate Tracks/Busses..."), sigc::mem_fun(*this, &ARDOUR_UI::start_duplicate_routes)); -- cgit v1.2.3