fixing some bugs with selecting and deleting
Some checks are pending
/ test (push) Waiting to run

This commit is contained in:
Chris Cochrun 2025-09-26 10:01:38 -05:00
parent ee08280f22
commit da621708ba

View file

@ -287,6 +287,18 @@ impl<'a> Library {
} }
} }
} }
if modifiers.control() {
let Some(item) = item else {
return Action::None;
};
let Some(items) = self.selected_items.as_mut()
else {
self.selected_items = Some(vec![item]);
return Action::None;
};
items.push(item);
self.selected_items = Some(items.to_vec());
}
} }
Message::DragItem(item) => { Message::DragItem(item) => {
debug!(?item); debug!(?item);
@ -877,11 +889,13 @@ impl<'a> Library {
fn delete_items(&mut self) -> Action { fn delete_items(&mut self) -> Action {
// Need to make this function collect tasks to be run off of // Need to make this function collect tasks to be run off of
// who should be deleted // who should be deleted
let Some(ref items) = self.selected_items else { let Some(items) = self.selected_items.as_mut() else {
return Action::None; return Action::None;
}; };
items.sort_by(|(_, index), (_, other)| index.cmp(other));
let tasks: Vec<Task<Message>> = items let tasks: Vec<Task<Message>> = items
.iter() .iter()
.rev()
.map(|(kind, index)| match kind { .map(|(kind, index)| match kind {
LibraryKind::Song => { LibraryKind::Song => {
if let Some(song) = if let Some(song) =