X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=gtk2_ardour%2Fedit_note_dialog.cc;h=0c7d2a6113a4950d31aecc94e57829193db70d92;hb=0c59ba649ef11236fca34b2a976fcee7309b9eb5;hp=39a3fa4e789ad354e6f56fe4e20c0ecc5edf0232;hpb=cf52d6e4b40111eb04b244ec054055a4ec15dbe0;p=ardour.git diff --git a/gtk2_ardour/edit_note_dialog.cc b/gtk2_ardour/edit_note_dialog.cc index 39a3fa4e78..0c7d2a6113 100644 --- a/gtk2_ardour/edit_note_dialog.cc +++ b/gtk2_ardour/edit_note_dialog.cc @@ -104,7 +104,10 @@ EditNoteDialog::EditNoteDialog (MidiRegionView* rv, set n) _length_clock.set_session (_region_view->get_time_axis_view().session ()); _length_clock.set_mode (AudioClock::BBT); - _length_clock.set (_region_view->region_relative_time_converter().to ((*_events.begin())->note()->length ()), true); + _length_clock.set ( + _region_view->region_relative_time_converter().to ((*_events.begin())->note()->end_time ()) + _region_view->region()->position(), + true, + _region_view->region_relative_time_converter().to ((*_events.begin())->note()->time ()) + _region_view->region()->position()); /* Set up `set all notes...' buttons' sensitivity */ @@ -117,8 +120,8 @@ EditNoteDialog::EditNoteDialog (MidiRegionView* rv, set n) int test_channel = (*_events.begin())->note()->channel (); int test_pitch = (*_events.begin())->note()->note (); int test_velocity = (*_events.begin())->note()->velocity (); - Evoral::Beats test_time = (*_events.begin())->note()->time (); - Evoral::Beats test_length = (*_events.begin())->note()->length (); + Temporal::Beats test_time = (*_events.begin())->note()->time (); + Temporal::Beats test_length = (*_events.begin())->note()->length (); for (set::iterator i = _events.begin(); i != _events.end(); ++i) { if ((*i)->note()->channel() != test_channel) { @@ -153,7 +156,7 @@ void EditNoteDialog::done (int r) { if (r != RESPONSE_ACCEPT) { - return; + return; } /* These calls mean that if a value is entered using the keyboard @@ -194,8 +197,8 @@ EditNoteDialog::done (int r) } } - Evoral::Beats const t = _region_view->source_relative_time_converter().from - (_time_clock.current_time() - (_region_view->region()->position() - _region_view->region()->start())); + samplecnt_t const region_samples = _time_clock.current_time() - (_region_view->region()->position() - _region_view->region()->start()); + Temporal::Beats const t = _region_view->source_relative_time_converter().from (region_samples); if (!_time_all.get_sensitive() || _time_all.get_active ()) { for (set::iterator i = _events.begin(); i != _events.end(); ++i) { @@ -206,10 +209,10 @@ EditNoteDialog::done (int r) } } - Evoral::Beats const d = _region_view->region_relative_time_converter().from (_length_clock.current_duration ()); - if (!_length_all.get_sensitive() || _length_all.get_active ()) { for (set::iterator i = _events.begin(); i != _events.end(); ++i) { + samplepos_t const note_end_sample = region_samples + _length_clock.current_duration (_time_clock.current_time()); + Temporal::Beats const d = _region_view->source_relative_time_converter().from (note_end_sample) - (*i)->note()->time(); if (d != (*i)->note()->length()) { _region_view->change_note_length (*i, d); had_change = true; @@ -223,7 +226,10 @@ EditNoteDialog::done (int r) _region_view->apply_diff (); + list notes; for (set::iterator i = _events.begin(); i != _events.end(); ++i) { - (*i)->set_selected ((*i)->selected()); // change color + notes.push_back ((*i)->note()->id()); } + + _region_view->select_notes (notes); }