From 42df6be0fa103e59ec56fe5d62c4f8c8ac4730f3 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Wed, 9 Feb 2022 21:04:43 +0100 Subject: [PATCH] Show Trigger Patch Selector on selection --- gtk2_ardour/trigger_page.cc | 16 ++++++++++++++++ gtk2_ardour/trigger_page.h | 2 ++ 2 files changed, 18 insertions(+) diff --git a/gtk2_ardour/trigger_page.cc b/gtk2_ardour/trigger_page.cc index aa220d5dbb..ee8845fff3 100644 --- a/gtk2_ardour/trigger_page.cc +++ b/gtk2_ardour/trigger_page.cc @@ -390,6 +390,8 @@ TriggerPage::selection_changed () _parameter_box.hide (); + bool hide_patch_selector = true; + if (!selection.triggers.empty ()) { TriggerSelection ts = selection.triggers; TriggerEntry* entry = *ts.begin (); @@ -408,6 +410,20 @@ TriggerPage::selection_changed () } } _parameter_box.show (); + + if (boost::dynamic_pointer_cast (trigger)) { + /* TODO @ben: only show optionally. checkbox? */ + hide_patch_selector = false; + SessionObject* obj = trigger->box ().owner (); + boost::shared_ptr stripable = _session->stripable_by_id (obj->id ()); + _patch_change_window.reset (boost::dynamic_pointer_cast (stripable), boost::dynamic_pointer_cast (trigger)); + _patch_change_window.present (); + } + } + + if (hide_patch_selector) { + _patch_change_window.hide (); + _patch_change_window.clear (); /* drop route/trigger ref */ } } diff --git a/gtk2_ardour/trigger_page.h b/gtk2_ardour/trigger_page.h index 8be4904dbc..1a0c66af51 100644 --- a/gtk2_ardour/trigger_page.h +++ b/gtk2_ardour/trigger_page.h @@ -38,6 +38,7 @@ #include "midi_region_operations_box.h" #include "midi_region_properties_box.h" #include "midi_trigger_properties_box.h" +#include "patch_change_widget.h" #include "route_processor_selection.h" #include "slot_properties_box.h" #include "trigger_clip_picker.h" @@ -137,6 +138,7 @@ private: MidiClipEditorBox _midi_trim_box; #endif + PatchChangeTriggerWindow _patch_change_window; RouteProcessorSelection _selection; std::list _strips; sigc::connection _fast_screen_update_connection;