From daf84122ca007baf4af451e0132bcd0f2ce6e060 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Wed, 13 Jun 2012 15:38:27 +0000 Subject: [PATCH] Make fit contents / show full range work for all selected tracks (part of #4106). git-svn-id: svn://localhost/ardour2/branches/3.0@12703 d708f5d6-7413-0410-9779-e7cbd77b26cf --- gtk2_ardour/midi_time_axis.cc | 21 ++++++++++++++++++--- gtk2_ardour/midi_time_axis.h | 1 + 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/gtk2_ardour/midi_time_axis.cc b/gtk2_ardour/midi_time_axis.cc index 1657e11bfb..6259b1e431 100644 --- a/gtk2_ardour/midi_time_axis.cc +++ b/gtk2_ardour/midi_time_axis.cc @@ -383,11 +383,11 @@ MidiTimeAxisView::append_extra_display_menu_items () range_menu->set_name ("ArdourContextMenu"); range_items.push_back (MenuElem (_("Show Full Range"), sigc::bind ( - sigc::mem_fun(*this, &MidiTimeAxisView::set_note_range), + sigc::mem_fun(*this, &MidiTimeAxisView::set_note_range_for_selection), MidiStreamView::FullRange))); range_items.push_back (MenuElem (_("Fit Contents"), sigc::bind ( - sigc::mem_fun(*this, &MidiTimeAxisView::set_note_range), + sigc::mem_fun(*this, &MidiTimeAxisView::set_note_range_for_selection), MidiStreamView::ContentsRange))); items.push_back (MenuElem (_("Note Range"), *range_menu)); @@ -808,8 +808,23 @@ MidiTimeAxisView::set_color_mode (ColorMode mode, bool force, bool redisplay) void MidiTimeAxisView::set_note_range(MidiStreamView::VisibleNoteRange range) { - if (!_ignore_signals) + if (!_ignore_signals) { midi_view()->set_note_range(range); + } +} + +/** Set the note range for all selected MIDI tracks */ +void +MidiTimeAxisView::set_note_range_for_selection (MidiStreamView::VisibleNoteRange range) +{ + TrackSelection& ts = _editor.get_selection().tracks; + + for (TrackSelection::iterator i = ts.begin(); i != ts.end(); ++i) { + MidiTimeAxisView* mtv = dynamic_cast (*i); + if (mtv) { + mtv->set_note_range (range); + } + } } diff --git a/gtk2_ardour/midi_time_axis.h b/gtk2_ardour/midi_time_axis.h index 529c4e089a..86f899967e 100644 --- a/gtk2_ardour/midi_time_axis.h +++ b/gtk2_ardour/midi_time_axis.h @@ -115,6 +115,7 @@ class MidiTimeAxisView : public RouteTimeAxisView void set_note_mode (ARDOUR::NoteMode mode); void set_color_mode (ARDOUR::ColorMode, bool force=false, bool redisplay=true); void set_note_range(MidiStreamView::VisibleNoteRange range); + void set_note_range_for_selection (MidiStreamView::VisibleNoteRange range); void route_active_changed (); void note_range_changed ();