trigger UI: respond to captured regions, and select slot on rec-arm

This commit is contained in:
Paul Davis
2025-10-25 15:26:48 -06:00
parent 1ae056bfd8
commit b77d9118b6
2 changed files with 31 additions and 4 deletions

View File

@@ -376,6 +376,7 @@ TriggerPage::set_session (Session* s)
Editor::instance ().get_selection ().TriggersChanged.connect (sigc::mem_fun (*this, &TriggerPage::selection_changed));
Trigger::TriggerArmChanged.connect (*this, invalidator (*this), std::bind (&TriggerPage::trigger_arm_changed, this, _1), gui_context());
TriggerBox::RegionCaptured.connect (*this, invalidator (*this), std::bind (&TriggerPage::region_captured, this, _1), gui_context());
initial_track_display ();
@@ -477,11 +478,9 @@ TriggerPage::clear_selected_slot ()
}
void
TriggerPage::trigger_arm_changed (Trigger const * trigger)
TriggerPage::region_captured (Trigger const * trigger)
{
assert (trigger);
if (!trigger->armed()) {
if (!trigger) {
return;
}
@@ -502,8 +501,10 @@ TriggerPage::trigger_arm_changed (Trigger const * trigger)
_audio_trig_box.show ();
_audio_editor->set_trigger (ref);
_audio_editor->get_canvas_viewport()->show ();
hpacker.pack_start (_audio_editor->contents(), true, true);
_audio_editor->contents().show_all ();
} else {
@@ -511,7 +512,10 @@ TriggerPage::trigger_arm_changed (Trigger const * trigger)
_midi_trig_box.show ();
_midi_editor->set_trigger (ref);
_midi_editor->get_canvas_viewport()->show ();
hpacker.pack_start (_midi_editor->contents(), true, true);
_midi_editor->contents().show_all ();
}
if (_show_bottom_pane) {
@@ -519,6 +523,28 @@ TriggerPage::trigger_arm_changed (Trigger const * trigger)
}
}
void
TriggerPage::trigger_arm_changed (Trigger const * trigger)
{
if (!trigger) {
return;
}
for (auto & strip : _strips) {
TriggerBoxWidget& tbw (strip->triggerbox_widget());
TriggerBoxUI* ui (tbw.ui());
if (!ui) {
continue;
}
TriggerEntry* entry = ui->entry_by_trigger (*trigger);
if (entry) {
PublicEditor::instance ().get_selection ().set (entry);
break;
}
}
}
void
TriggerPage::hide_all ()
{

View File

@@ -102,6 +102,7 @@ private:
void selection_changed ();
void trigger_arm_changed (ARDOUR::Trigger const *);
void region_captured (ARDOUR::Trigger const *);
PBD::ScopedConnectionList editor_connections;
gint start_updating ();