make sure SelectionRemove case is handled for selection ops

Also fix formatting for switch/case statements
This commit is contained in:
Paul Davis 2024-08-06 17:36:30 -06:00
parent 15912fea77
commit 21610015ed
2 changed files with 104 additions and 97 deletions

View file

@ -4390,50 +4390,51 @@ MarkerDrag::start_grab (GdkEvent* event, Gdk::Cursor* cursor)
SelectionOperation op = ArdourKeyboard::selection_type (event->button.state);
switch (op) {
case SelectionToggle:
/* we toggle on the button release */
break;
case SelectionSet:
if (!_editor->selection->selected (_marker)) {
_editor->selection->set (_marker);
_selection_changed = true;
}
break;
case SelectionExtend: {
Locations::LocationList ll;
list<ArdourMarker*> to_add;
timepos_t s, e;
_editor->selection->markers.range (s, e);
s = min (_marker->position (), s);
e = max (_marker->position (), e);
s = min (s, e);
e = max (s, e);
if (e < timepos_t::max (e.time_domain ())) {
e = e.increment ();
}
_editor->session ()->locations ()->find_all_between (s, e, ll, Location::Flags (0));
for (Locations::LocationList::iterator i = ll.begin (); i != ll.end (); ++i) {
Editor::LocationMarkers* lm = _editor->find_location_markers (*i);
if (lm) {
if (lm->start) {
to_add.push_back (lm->start);
}
if (lm->end) {
to_add.push_back (lm->end);
}
case SelectionToggle:
/* we toggle on the button release */
break;
case SelectionSet:
if (!_editor->selection->selected (_marker)) {
_editor->selection->set (_marker);
_selection_changed = true;
}
break;
case SelectionExtend: {
Locations::LocationList ll;
list<ArdourMarker*> to_add;
timepos_t s, e;
_editor->selection->markers.range (s, e);
s = min (_marker->position (), s);
e = max (_marker->position (), e);
s = min (s, e);
e = max (s, e);
if (e < timepos_t::max (e.time_domain ())) {
e = e.increment ();
}
_editor->session ()->locations ()->find_all_between (s, e, ll, Location::Flags (0));
for (Locations::LocationList::iterator i = ll.begin (); i != ll.end (); ++i) {
Editor::LocationMarkers* lm = _editor->find_location_markers (*i);
if (lm) {
if (lm->start) {
to_add.push_back (lm->start);
}
if (lm->end) {
to_add.push_back (lm->end);
}
}
if (!to_add.empty ()) {
_editor->selection->add (to_add);
_selection_changed = true;
}
break;
}
case SelectionAdd:
_editor->selection->add (_marker);
if (!to_add.empty ()) {
_editor->selection->add (to_add);
_selection_changed = true;
break;
}
break;
}
case SelectionAdd:
_editor->selection->add (_marker);
_selection_changed = true;
break;
default:
break;
}
/* Set up copies for us to manipulate during the drag
@ -4645,23 +4646,24 @@ MarkerDrag::finished (GdkEvent* event, bool movement_occurred)
SelectionOperation op = ArdourKeyboard::selection_type (event->button.state);
switch (op) {
case SelectionSet:
if (_editor->selection->selected (_marker) && _editor->selection->markers.size () > 1) {
_editor->selection->set (_marker);
_selection_changed = true;
}
break;
case SelectionToggle:
/* we toggle on the button release, click only */
_editor->selection->toggle (_marker);
case SelectionSet:
if (_editor->selection->selected (_marker) && _editor->selection->markers.size () > 1) {
_editor->selection->set (_marker);
_selection_changed = true;
}
break;
break;
case SelectionToggle:
/* we toggle on the button release, click only */
_editor->selection->toggle (_marker);
_selection_changed = true;
case SelectionExtend:
case SelectionAdd:
break;
break;
case SelectionExtend:
case SelectionAdd:
case SelectionRemove:
break;
}
if (_selection_changed) {

View file

@ -632,28 +632,31 @@ Editor::button_selection (ArdourCanvas::Item* item, GdkEvent* event, ItemType it
selectables.push_back (argl->nth (after));
switch (op) {
case SelectionSet:
if (press) {
selection->set (selectables);
_mouse_changed_selection = true;
}
break;
case SelectionAdd:
if (press) {
selection->add (selectables);
_mouse_changed_selection = true;
}
break;
case SelectionToggle:
if (press) {
selection->toggle (selectables);
_mouse_changed_selection = true;
}
break;
case SelectionSet:
if (press) {
selection->set (selectables);
_mouse_changed_selection = true;
}
break;
case SelectionAdd:
if (press) {
selection->add (selectables);
_mouse_changed_selection = true;
}
break;
case SelectionToggle:
if (press) {
selection->toggle (selectables);
_mouse_changed_selection = true;
}
break;
case SelectionExtend:
/* XXX */
break;
case SelectionExtend:
/* XXX */
break;
case SelectionRemove:
/* XXX */
break;
}
}
break;
@ -678,28 +681,30 @@ Editor::button_selection (ArdourCanvas::Item* item, GdkEvent* event, ItemType it
selectables.push_back (al->nth (after));
switch (op) {
case SelectionSet:
if (press) {
selection->set (selectables);
_mouse_changed_selection = true;
}
break;
case SelectionAdd:
if (press) {
selection->add (selectables);
_mouse_changed_selection = true;
}
break;
case SelectionToggle:
if (press) {
selection->toggle (selectables);
_mouse_changed_selection = true;
}
break;
case SelectionExtend:
/* XXX */
break;
case SelectionSet:
if (press) {
selection->set (selectables);
_mouse_changed_selection = true;
}
break;
case SelectionAdd:
if (press) {
selection->add (selectables);
_mouse_changed_selection = true;
}
break;
case SelectionToggle:
if (press) {
selection->toggle (selectables);
_mouse_changed_selection = true;
}
break;
case SelectionExtend:
/* XXX */
break;
case SelectionRemove:
/* not relevant */
break;
}
}
break;