diff options
-rw-r--r-- | gtk2_ardour/ardour_ui.h | 1 | ||||
-rw-r--r-- | gtk2_ardour/ardour_ui2.cc | 10 | ||||
-rw-r--r-- | gtk2_ardour/ardour_ui_dialogs.cc | 1 | ||||
-rw-r--r-- | gtk2_ardour/ardour_ui_options.cc | 3 |
4 files changed, 12 insertions, 3 deletions
diff --git a/gtk2_ardour/ardour_ui.h b/gtk2_ardour/ardour_ui.h index 5ca28bf373..64423657b0 100644 --- a/gtk2_ardour/ardour_ui.h +++ b/gtk2_ardour/ardour_ui.h @@ -657,6 +657,7 @@ private: void edit_metadata (); void import_metadata (); + void set_loop_sensitivity (); void set_transport_sensitivity (bool); //stuff for ProTools-style numpad diff --git a/gtk2_ardour/ardour_ui2.cc b/gtk2_ardour/ardour_ui2.cc index a5b1a93e93..c264c2c1c6 100644 --- a/gtk2_ardour/ardour_ui2.cc +++ b/gtk2_ardour/ardour_ui2.cc @@ -848,7 +848,15 @@ ARDOUR_UI::error_blink (bool onoff) } } - +void +ARDOUR_UI::set_loop_sensitivity () +{ + if (!_session || _session->config.get_external_sync()) { + auto_loop_button.set_sensitive (false); + } else { + auto_loop_button.set_sensitive (_session && _session->locations()->auto_loop_location()); + } +} void ARDOUR_UI::set_transport_sensitivity (bool yn) diff --git a/gtk2_ardour/ardour_ui_dialogs.cc b/gtk2_ardour/ardour_ui_dialogs.cc index 6b206fed05..561fac9c15 100644 --- a/gtk2_ardour/ardour_ui_dialogs.cc +++ b/gtk2_ardour/ardour_ui_dialogs.cc @@ -170,6 +170,7 @@ ARDOUR_UI::set_session (Session *s) _session->locations()->added.connect (_session_connections, MISSING_INVALIDATOR, boost::bind (&ARDOUR_UI::handle_locations_change, this, _1), gui_context()); _session->locations()->removed.connect (_session_connections, MISSING_INVALIDATOR, boost::bind (&ARDOUR_UI::handle_locations_change, this, _1), gui_context()); _session->config.ParameterChanged.connect (_session_connections, MISSING_INVALIDATOR, boost::bind (&ARDOUR_UI::session_parameter_changed, this, _1), gui_context ()); + _session->auto_loop_location_changed.connect (_session_connections, MISSING_INVALIDATOR, boost::bind (&ARDOUR_UI::set_loop_sensitivity, this), gui_context ()); /* Clocks are on by default after we are connected to a session, so show that here. */ diff --git a/gtk2_ardour/ardour_ui_options.cc b/gtk2_ardour/ardour_ui_options.cc index 1c475df205..5205354881 100644 --- a/gtk2_ardour/ardour_ui_options.cc +++ b/gtk2_ardour/ardour_ui_options.cc @@ -353,7 +353,6 @@ ARDOUR_UI::parameter_changed (std::string p) if (!_session->config.get_external_sync()) { sync_button.set_text (S_("SyncSource|Int.")); - auto_loop_button.set_sensitive (true); ActionManager::get_action ("Transport", "ToggleAutoPlay")->set_sensitive (true); ActionManager::get_action ("Transport", "ToggleAutoReturn")->set_sensitive (true); ActionManager::get_action ("Transport", "ToggleFollowEdits")->set_sensitive (true); @@ -365,12 +364,12 @@ ARDOUR_UI::parameter_changed (std::string p) // but makes it clear to the user that it's disabled. _session->request_play_loop (false, false); } - auto_loop_button.set_sensitive (false); /* XXX we need to make sure that auto-play is off as well as insensitive */ ActionManager::get_action ("Transport", "ToggleAutoPlay")->set_sensitive (false); ActionManager::get_action ("Transport", "ToggleAutoReturn")->set_sensitive (false); ActionManager::get_action ("Transport", "ToggleFollowEdits")->set_sensitive (false); } + set_loop_sensitivity (); } else if (p == "follow-edits") { |