summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gtk2_ardour/midi_time_axis.cc21
-rw-r--r--gtk2_ardour/midi_time_axis.h1
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 ();