diff --git a/README.md b/README.md index d49fe1e..35760d9 100644 --- a/README.md +++ b/README.md @@ -37,8 +37,10 @@ have them configurable. * `F1`: Debug log * `F2`: Queue * `F3`: Search - * `F4`: Playlists, then hit `Return` to queue all songs from the playlist -* Tracks can be played using `Return` and queued using `Space` + * `F4`: Playlists + * `d` deletes the currently selected track + * `c` clears the entire playlist +* Tracks and playlists can be played using `Return` and queued using `Space` * `Shift-p` toggles playback of a track * `Shift-s` stops a track * `q` quits ncspot diff --git a/src/main.rs b/src/main.rs index e0e688f..5312b66 100644 --- a/src/main.rs +++ b/src/main.rs @@ -141,6 +141,14 @@ fn main() { }); } + { + let queue = queue.clone(); + cursive.add_global_callback('c', move |_s| { + let mut queue = queue.lock().expect("could not lock queue"); + queue.clear(); + }); + } + let search = ui::search::SearchView::new(spotify.clone(), queue.clone()); let mut playlists = diff --git a/src/queue.rs b/src/queue.rs index 0e5d8c6..e332816 100644 --- a/src/queue.rs +++ b/src/queue.rs @@ -92,6 +92,14 @@ impl Queue { } } + pub fn clear(&mut self) { + self.stop(); + self.queue.clear(); + + // redraw queue if open + self.ev.send(Event::Queue(QueueEvent::Show)); + } + pub fn play(&mut self, index: usize) { let track = &self.queue[index]; self.spotify.load(&track);