summaryrefslogtreecommitdiff
path: root/gtk2_ardour/mixer_ui.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gtk2_ardour/mixer_ui.cc')
-rw-r--r--gtk2_ardour/mixer_ui.cc27
1 files changed, 26 insertions, 1 deletions
diff --git a/gtk2_ardour/mixer_ui.cc b/gtk2_ardour/mixer_ui.cc
index e2946f823b..59bba9aea0 100644
--- a/gtk2_ardour/mixer_ui.cc
+++ b/gtk2_ardour/mixer_ui.cc
@@ -639,6 +639,7 @@ Mixer_UI::show_all_audiotracks()
{
set_all_audio_visibility (1, true);
}
+
void
Mixer_UI::hide_all_audiotracks ()
{
@@ -646,6 +647,29 @@ Mixer_UI::hide_all_audiotracks ()
}
void
+Mixer_UI::show_tracks_with_regions_at_playhead ()
+{
+ boost::shared_ptr<Session::RouteList> const regions = session->get_routes_with_regions_at (session->transport_frame ());
+
+ TreeModel::Children rows = track_model->children ();
+ for (TreeModel::Children::iterator i = rows.begin(); i != rows.end(); ++i) {
+ boost::shared_ptr<Route> route = (*i)[track_columns.route];
+
+ bool found = false;
+ for (Session::RouteList::iterator x = (*regions).begin(); x != (*regions).end(); ++x) {
+ if ((*x) == route)
+ found = true;
+ }
+
+ (*i)[track_columns.visible] = found;
+ }
+
+ strip_redisplay_does_not_sync_order_keys = true;
+ redisplay_track_list ();
+ strip_redisplay_does_not_sync_order_keys = false;
+}
+
+void
Mixer_UI::track_list_reorder (const TreeModel::Path& path, const TreeModel::iterator& iter, int* new_order)
{
strip_redisplay_does_not_sync_order_keys = true;
@@ -944,7 +968,8 @@ Mixer_UI::build_track_menu ()
items.push_back (MenuElem (_("Hide All Audio Tracks"), mem_fun(*this, &Mixer_UI::hide_all_audiotracks)));
items.push_back (MenuElem (_("Show All Audio Busses"), mem_fun(*this, &Mixer_UI::show_all_audiobus)));
items.push_back (MenuElem (_("Hide All Audio Busses"), mem_fun(*this, &Mixer_UI::hide_all_audiobus)));
-
+ items.push_back (MenuElem (_("Hide All Audio Busses"), mem_fun(*this, &Mixer_UI::hide_all_audiobus)));
+ items.push_back (MenuElem (_("Show Tracks With Regions Under Playhead"), mem_fun (*this, &Mixer_UI::show_tracks_with_regions_at_playhead)));
}
void