diff --git a/gtk2_ardour/editor_routes.cc b/gtk2_ardour/editor_routes.cc index e80838cb55..b351c8a51d 100644 --- a/gtk2_ardour/editor_routes.cc +++ b/gtk2_ardour/editor_routes.cc @@ -303,6 +303,8 @@ EditorRoutes::build_menu () items.push_back (MenuElem (_("Hide All Audio Tracks"), sigc::mem_fun (*this, &EditorRoutes::hide_all_audiotracks))); items.push_back (MenuElem (_("Show All Audio Busses"), sigc::mem_fun (*this, &EditorRoutes::show_all_audiobus))); items.push_back (MenuElem (_("Hide All Audio Busses"), sigc::mem_fun (*this, &EditorRoutes::hide_all_audiobus))); + items.push_back (MenuElem (_("Show All Midi Tracks"), sigc::mem_fun (*this, &EditorRoutes::show_all_miditracks))); + items.push_back (MenuElem (_("Hide All Midi Tracks"), sigc::mem_fun (*this, &EditorRoutes::hide_all_miditracks))); items.push_back (MenuElem (_("Show Tracks With Regions Under Playhead"), sigc::mem_fun (*this, &EditorRoutes::show_tracks_with_regions_at_playhead))); } @@ -694,7 +696,7 @@ EditorRoutes::set_all_tracks_visibility (bool yn) } void -EditorRoutes::set_all_audio_visibility (int tracks, bool yn) +EditorRoutes::set_all_audio_midi_visibility (int tracks, bool yn) { TreeModel::Children rows = _model->children(); TreeModel::Children::iterator i; @@ -702,10 +704,13 @@ EditorRoutes::set_all_audio_visibility (int tracks, bool yn) suspend_redisplay (); for (i = rows.begin(); i != rows.end(); ++i) { + TreeModel::Row row = (*i); TimeAxisView* tv = row[_columns.tv]; + AudioTimeAxisView* atv; - + MidiTimeAxisView* mtv; + if (tv == 0) { continue; } @@ -729,6 +734,19 @@ EditorRoutes::set_all_audio_visibility (int tracks, bool yn) break; } } + else if ((mtv = dynamic_cast(tv)) != 0) { + switch (tracks) { + case 0: + (*i)[_columns.visible] = yn; + break; + + case 3: + if (mtv->is_midi_track()) { + (*i)[_columns.visible] = yn; + } + break; + } + } } resume_redisplay (); @@ -746,26 +764,37 @@ EditorRoutes::show_all_routes () set_all_tracks_visibility (true); } -void -EditorRoutes::show_all_audiobus () -{ - set_all_audio_visibility (2, true); -} -void -EditorRoutes::hide_all_audiobus () -{ - set_all_audio_visibility (2, false); -} - void EditorRoutes::show_all_audiotracks() { - set_all_audio_visibility (1, true); + set_all_audio_midi_visibility (1, true); } void EditorRoutes::hide_all_audiotracks () { - set_all_audio_visibility (1, false); + set_all_audio_midi_visibility (1, false); +} + +void +EditorRoutes::show_all_audiobus () +{ + set_all_audio_midi_visibility (2, true); +} +void +EditorRoutes::hide_all_audiobus () +{ + set_all_audio_midi_visibility (2, false); +} + +void +EditorRoutes::show_all_miditracks() +{ + set_all_audio_midi_visibility (3, true); +} +void +EditorRoutes::hide_all_miditracks () +{ + set_all_audio_midi_visibility (3, false); } bool diff --git a/gtk2_ardour/editor_routes.h b/gtk2_ardour/editor_routes.h index d0798ee5bc..fbbfafe54d 100644 --- a/gtk2_ardour/editor_routes.h +++ b/gtk2_ardour/editor_routes.h @@ -78,13 +78,15 @@ private: void update_solo_isolate_display (); void update_solo_safe_display (); void set_all_tracks_visibility (bool); - void set_all_audio_visibility (int, bool); + void set_all_audio_midi_visibility (int, bool); void show_all_routes (); void hide_all_routes (); void show_all_audiotracks (); void hide_all_audiotracks (); void show_all_audiobus (); void hide_all_audiobus (); + void show_all_miditracks (); + void hide_all_miditracks (); void show_tracks_with_regions_at_playhead (); void display_drag_data_received (