Editor::apply_midi_note_edit_op_to_region (MidiOperator& op, MidiRegionView& mrv)
{
Evoral::Sequence<Evoral::MusicalTime>::Notes selected;
Editor::apply_midi_note_edit_op_to_region (MidiOperator& op, MidiRegionView& mrv)
{
Evoral::Sequence<Evoral::MusicalTime>::Notes selected;
- mrv.selection_as_notelist (selected);
+ mrv.selection_as_notelist (selected, true);
vector<Evoral::Sequence<Evoral::MusicalTime>::Notes> v;
v.push_back (selected);
vector<Evoral::Sequence<Evoral::MusicalTime>::Notes> v;
v.push_back (selected);
-MidiRegionView::selection_as_notelist (Notes& selected)
+MidiRegionView::selection_as_notelist (Notes& selected, bool allow_all_if_none_selected)
+ bool had_selected = false;
+
time_sort_events ();
for (Events::iterator i = _events.begin(); i != _events.end(); ++i) {
if ((*i)->selected()) {
selected.insert ((*i)->note());
time_sort_events ();
for (Events::iterator i = _events.begin(); i != _events.end(); ++i) {
if ((*i)->selected()) {
selected.insert ((*i)->note());
+ had_selected = true;
+ }
+ }
+
+ if (allow_all_if_none_selected && !had_selected) {
+ for (Events::iterator i = _events.begin(); i != _events.end(); ++i) {
+ selected.insert ((*i)->note());
void show_list_editor ();
void show_list_editor ();
- void selection_as_notelist (Notes& selected);
+ void selection_as_notelist (Notes& selected, bool allow_all_if_none_selected = false);
protected:
/** Allows derived types to specify their visibility requirements
protected:
/** Allows derived types to specify their visibility requirements
double
QuantizeDialog::grid_size_to_musical_time (const string& txt) const
{
double
QuantizeDialog::grid_size_to_musical_time (const string& txt) const
{
- if (txt == "main_grid") {
+ if (txt == "main grid") {
bool success;
Evoral::MusicalTime b = editor.get_grid_type_as_beats (success, 0);
bool success;
Evoral::MusicalTime b = editor.get_grid_type_as_beats (success, 0);
} else if (txt == _("Beats")) {
return 1.0;
}
} else if (txt == _("Beats")) {
return 1.0;
}