diff options
-rw-r--r-- | gtk2_ardour/midi_time_axis.cc | 21 | ||||
-rw-r--r-- | 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<MidiTimeAxisView*> (*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 (); |