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
This commit is contained in:
Carl Hetherington 2012-06-13 15:38:27 +00:00
parent d341088f13
commit daf84122ca
2 changed files with 19 additions and 3 deletions

View File

@ -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);
}
}
}

View File

@ -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 ();