From 9cea6b735945fd5e690bda05f37e8e250cd9a388 Mon Sep 17 00:00:00 2001 From: Ben Loftis Date: Sat, 12 Feb 2022 11:14:40 -0600 Subject: [PATCH] trigger_ui: don't allow Stretch options to be edited on an active clip --- gtk2_ardour/audio_trigger_properties_box.cc | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/gtk2_ardour/audio_trigger_properties_box.cc b/gtk2_ardour/audio_trigger_properties_box.cc index 737a9ca7a8..31db96235b 100644 --- a/gtk2_ardour/audio_trigger_properties_box.cc +++ b/gtk2_ardour/audio_trigger_properties_box.cc @@ -206,6 +206,12 @@ AudioTriggerPropertiesBox::on_trigger_changed (const PBD::PropertyChange& pc) _ignore_changes = true; + bool set_sensitivities = false; + + if (pc.contains (Properties::running)) { + set_sensitivities = true; //can't change stretch params while we are playing so we must watch active state + } + if (pc.contains (Properties::start) || pc.contains (Properties::length)) { /* NOT REACHED from current code */ AudioClock::Mode mode = at->box ().data_type () == ARDOUR::DataType::AUDIO ? AudioClock::Samples : AudioClock::BBT; @@ -235,11 +241,16 @@ AudioTriggerPropertiesBox::on_trigger_changed (const PBD::PropertyChange& pc) if (pc.contains (Properties::stretch_mode) || pc.contains (Properties::stretchable)) { _stretch_toggle.set_active (at->stretchable () ? Gtkmm2ext::ExplicitActive : Gtkmm2ext::Off); _stretch_selector.set_text(stretch_mode_to_string(at->stretch_mode ())); + set_sensitivities = true; + } - /* set widget sensitivity based on stretchable button state */ - bool follow_widgets_sensitive = at->stretchable (); + if (set_sensitivities) { + _stretch_toggle.set_sensitive(!at->active()); - if (follow_widgets_sensitive) { + /* set remaining widget sensitivity based on stretchable button state & running state */ + bool stretch_widgets_sensitive = at->stretchable () && !at->active(); + + if (stretch_widgets_sensitive) { _stretch_selector.set_sensitive(true); _beat_spinner.set_sensitive(true); _beat_label.set_sensitive(true); @@ -248,6 +259,7 @@ AudioTriggerPropertiesBox::on_trigger_changed (const PBD::PropertyChange& pc) _half_button.set_sensitive(true); _dbl_button.set_sensitive(true); _abpm_label.set_sensitive(true); + _bars_display.set_sensitive(true); } else { _stretch_selector.set_sensitive(false); _beat_spinner.set_sensitive(false); @@ -257,6 +269,7 @@ AudioTriggerPropertiesBox::on_trigger_changed (const PBD::PropertyChange& pc) _half_button.set_sensitive(false); _dbl_button.set_sensitive(false); _abpm_label.set_sensitive(false); + _bars_display.set_sensitive(false); } }