From d7bd87eb137f8391fdffac4cb04a3e69bc0ae927 Mon Sep 17 00:00:00 2001 From: Ben Loftis Date: Fri, 25 Jun 2021 17:03:14 -0500 Subject: [PATCH] Playlist UI Tweaks: add an action to show playlist selector for selected track --- gtk2_ardour/ardour.menus.in | 2 ++ gtk2_ardour/editor.h | 2 ++ gtk2_ardour/editor_actions.cc | 3 +++ gtk2_ardour/editor_ops.cc | 16 ++++++++++++++++ gtk2_ardour/route_ui.h | 2 +- 5 files changed, 24 insertions(+), 1 deletion(-) diff --git a/gtk2_ardour/ardour.menus.in b/gtk2_ardour/ardour.menus.in index f1109e0341..3796f73669 100644 --- a/gtk2_ardour/ardour.menus.in +++ b/gtk2_ardour/ardour.menus.in @@ -412,6 +412,8 @@ + + diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h index a435604afa..5268094077 100644 --- a/gtk2_ardour/editor.h +++ b/gtk2_ardour/editor.h @@ -1537,6 +1537,8 @@ private: void toggle_all_existing_automation (); void toggle_layer_display (); + void launch_playlist_selector (); + void reverse_selection (); void edit_envelope (); diff --git a/gtk2_ardour/editor_actions.cc b/gtk2_ardour/editor_actions.cc index be6867ae99..638ed21176 100644 --- a/gtk2_ardour/editor_actions.cc +++ b/gtk2_ardour/editor_actions.cc @@ -262,6 +262,9 @@ Editor::register_actions () reg_sens (editor_actions, "toggle-all-existing-automation", _("Toggle All Existing Automation"), sigc::mem_fun (*this, &Editor::toggle_all_existing_automation)); reg_sens (editor_actions, "toggle-layer-display", _("Toggle Layer Display"), sigc::mem_fun (*this, &Editor::toggle_layer_display)); + act = reg_sens (editor_actions, "show-plist-selector", _("Show Playlist Selector"), sigc::mem_fun (*this, &Editor::launch_playlist_selector)); + ActionManager::stripable_selection_sensitive_actions.push_back (act); + /* these "overlap" with Region/nudge-* and also Common/nudge-* but * provide a single editor-related action that will nudge a region, * selected marker or playhead diff --git a/gtk2_ardour/editor_ops.cc b/gtk2_ardour/editor_ops.cc index fb5af16401..5820e63737 100644 --- a/gtk2_ardour/editor_ops.cc +++ b/gtk2_ardour/editor_ops.cc @@ -8669,6 +8669,22 @@ Editor::toggle_layer_display () } +void +Editor::launch_playlist_selector () +{ + TrackViewList & tvl (selection->tracks); + TrackViewList::const_iterator t = tvl.begin(); + if (t == tvl.end()) { + return; + } + + RouteTimeAxisView* rtav = dynamic_cast (*t); + + if (rtav && rtav->is_track()) { + rtav->show_playlist_selector (); + } +} + vector Editor::filter_to_unique_midi_region_views (RegionSelection const & ms) const { diff --git a/gtk2_ardour/route_ui.h b/gtk2_ardour/route_ui.h index 460591bbb0..20c349050d 100644 --- a/gtk2_ardour/route_ui.h +++ b/gtk2_ardour/route_ui.h @@ -163,6 +163,7 @@ public: void clear_playlist (); void use_playlist (Gtk::RadioMenuItem* item, boost::weak_ptr wpl); + void show_playlist_selector (); /* used by EditorRoutes */ static Gtkmm2ext::ActiveState solo_active_state (boost::shared_ptr); @@ -244,7 +245,6 @@ protected: void build_playlist_menu (); Gtk::Menu* playlist_action_menu; - void show_playlist_selector (); void show_playlist_copy_selector (); void show_playlist_share_selector (); void show_playlist_steal_selector ();