Playlist UI tweaks: rationalize playlist functions in Editor::

* new global playlist functions for {all | rec-armed | selected} tracks.
* new API passes (bool copy) arg instead of separate functions for copy_X.
* consistently use mapover_X functions to consolidate code
* update Lua bindings to match
This commit is contained in:
Ben Loftis 2021-06-04 09:36:53 -05:00
parent cf999ecaa9
commit a8395718bc
6 changed files with 146 additions and 96 deletions

View file

@ -406,10 +406,9 @@ Editor::get_onscreen_tracks (TrackViewList& tvl)
*/
void
Editor::mapover_routes (sigc::slot<void, RouteUI&, uint32_t> sl, RouteUI* basis, PBD::PropertyID prop) const
Editor::mapover_grouped_routes (sigc::slot<void, RouteUI&> sl, RouteUI* basis, PBD::PropertyID prop) const
{
set<RouteUI*> routes;
routes.insert (basis);
RouteGroup* group = basis->route()->route_group();
@ -427,10 +426,55 @@ Editor::mapover_routes (sigc::slot<void, RouteUI&, uint32_t> sl, RouteUI* basis,
}
/* call the slots */
uint32_t const sz = routes.size ();
for (set<RouteUI*>::iterator i = routes.begin(); i != routes.end(); ++i) {
sl (**i, sz);
sl (**i);
}
}
void
Editor::mapover_armed_routes (sigc::slot<void, RouteUI&> sl) const
{
set<RouteUI*> routes;
for (TrackViewList::const_iterator i = track_views.begin(); i != track_views.end(); ++i) {
RouteUI* v = dynamic_cast<RouteUI*> (*i);
if (v && v->route()->is_track()) {
if ( v->track()->rec_enable_control()->get_value()) {
routes.insert (v);
}
}
}
for (set<RouteUI*>::iterator i = routes.begin(); i != routes.end(); ++i) {
sl (**i);
}
}
void
Editor::mapover_selected_routes (sigc::slot<void, RouteUI&> sl) const
{
set<RouteUI*> routes;
for (TrackSelection::iterator i = selection->tracks.begin(); i != selection->tracks.end(); ++i) {
RouteTimeAxisView* r = dynamic_cast<RouteTimeAxisView*> (*i);
if (r) {
routes.insert (r);
}
}
for (set<RouteUI*>::iterator i = routes.begin(); i != routes.end(); ++i) {
sl (**i);
}
}
void
Editor::mapover_all_routes (sigc::slot<void, RouteUI&> sl) const
{
set<RouteUI*> routes;
for (TrackViewList::const_iterator i = track_views.begin(); i != track_views.end(); ++i) {
RouteTimeAxisView* r = dynamic_cast<RouteTimeAxisView*> (*i);
if (r) {
routes.insert (r);
}
}
for (set<RouteUI*>::iterator i = routes.begin(); i != routes.end(); ++i) {
sl (**i);
}
}