update current_track when tracks before the current one are removed

also:
don't use events to update the queue UI
this makes the Add/Remove queue events useless, but we'll keep them for now

hopefully fixes #22
This commit is contained in:
Henrik Friedrichsen
2019-03-07 17:27:52 +01:00
parent 41164df2be
commit b075c96134
2 changed files with 7 additions and 16 deletions

View File

@@ -32,9 +32,10 @@ impl QueueView {
fn cb_delete(cursive: &mut Cursive, queue: &mut Queue) {
let view_ref: Option<ViewRef<LinearLayout>> = cursive.find_id("queue_list");
if let Some(queuelist) = view_ref {
if let Some(mut queuelist) = view_ref {
let index = queuelist.get_focus_index();
queue.remove(index);
queuelist.remove_child(index);
}
}
@@ -50,16 +51,8 @@ impl QueueView {
let view_ref: Option<ViewRef<LinearLayout>> = cursive.find_id("queue_list");
if let Some(mut queuelist) = view_ref {
match ev {
QueueEvent::Add(index) => {
let queue = self.queue.lock().expect("could not lock queue");
let track = queue.get(index);
let button = self.create_button(&track);
queuelist.insert_child(index, button);
}
QueueEvent::Remove(index) => {
queuelist.remove_child(index);
}
QueueEvent::Show => self.populate(&mut queuelist),
_ => (),
}
}
}