Actually play next track on skip

This commit is contained in:
chmanie 2023-05-31 17:20:53 +02:00
parent 0d59789e40
commit 615113faf6
1 changed files with 13 additions and 13 deletions

View File

@ -164,6 +164,8 @@ struct UiItem {
} }
struct QueueView { struct QueueView {
// FIXME: implement skip on server, remove current
current: usize,
list: Vec<UiItem>, list: Vec<UiItem>,
list_state: ListState, list_state: ListState,
} }
@ -183,11 +185,10 @@ impl ListView for QueueView {
} }
impl QueueView { impl QueueView {
// FIXME: implement skip on server
fn skip(&self, tx: &Sender<MessageFromUi>) { fn skip(&self, tx: &Sender<MessageFromUi>) {
if let Some(pos) = self.selected() { if self.current < self.get_size() - 1 {
if pos < self.get_size() - 1 { tx.send(MessageFromUi::SetCurrentTrack(self.current + 1));
tx.send(MessageFromUi::SetCurrentTrack(pos + 1));
}
} }
} }
fn play_selected(&self, tx: &Sender<MessageFromUi>) { fn play_selected(&self, tx: &Sender<MessageFromUi>) {
@ -196,6 +197,8 @@ impl QueueView {
} }
} }
fn update(&mut self, queue: Queue) { fn update(&mut self, queue: Queue) {
// FIXME: rename current to current_pos in proto buf definition
self.current = queue.current as usize;
self.list = queue self.list = queue
.tracks .tracks
.iter() .iter()
@ -362,6 +365,7 @@ impl App {
parent: None, parent: None,
}; };
let queue = QueueView { let queue = QueueView {
current: 0,
list: Vec::new(), list: Vec::new(),
list_state: ListState::default(), list_state: ListState::default(),
}; };
@ -695,15 +699,11 @@ fn ui<B: Backend>(f: &mut Frame<B>, app: &mut App) {
})) }))
.title("Queue"), .title("Queue"),
) )
.highlight_style( .highlight_style(Style::default().bg(if queue_focused {
Style::default() COLOR_PRIMARY
.bg(if queue_focused { } else {
COLOR_PRIMARY COLOR_PRIMARY_DARK
} else { }));
COLOR_PRIMARY_DARK
})
.add_modifier(Modifier::BOLD),
);
f.render_stateful_widget(queue_list, right_side[0], &mut app.queue.list_state); f.render_stateful_widget(queue_list, right_side[0], &mut app.queue.list_state);