rmptuiad2e99c
added keybind to remove highlighted song from queue
+29 −0
2 files changed
- M src/app.rs +24 −0
- M src/handler.rs +5 −0
| @@ -113,6 +113,30 @@ impl App { | |||
| 113 | 113 | Ok(()) | |
| 114 | 114 | } | |
| 115 | 115 | ||
| 116 | + | pub fn remove_from_current_playlist(&mut self) { | |
| 117 | + | let mut file = String::new(); | |
| 118 | + | match self.selected_tab { | |
| 119 | + | SelectedTab::DirectoryBrowser => { | |
| 120 | + | let (_, f) = self.browser.filetree.get(self.browser.selected).unwrap(); | |
| 121 | + | file.push_str(f); | |
| 122 | + | } | |
| 123 | + | ||
| 124 | + | SelectedTab::Queue => { | |
| 125 | + | file = self.queue_list.list.get(self.queue_list.index).unwrap().to_string(); | |
| 126 | + | } | |
| 127 | + | ||
| 128 | + | _ => {} | |
| 129 | + | } | |
| 130 | + | ||
| 131 | + | for (i, song) in self.queue_list.list.clone().iter().enumerate() { | |
| 132 | + | if song.contains(&file) { | |
| 133 | + | self.conn.conn.delete(i as u32).unwrap(); | |
| 134 | + | } | |
| 135 | + | } | |
| 136 | + | ||
| 137 | + | self.update_queue(); | |
| 138 | + | } | |
| 139 | + | ||
| 116 | 140 | pub fn cycle_tabls(&mut self) { | |
| 117 | 141 | self.selected_tab = match self.selected_tab { | |
| 118 | 142 | SelectedTab::DirectoryBrowser => SelectedTab::Queue, | |
| @@ -284,6 +284,11 @@ pub fn handle_key_events(key_event: KeyEvent, app: &mut App) -> AppResult<()> { | |||
| 284 | 284 | app.inputmode = InputMode::toggle_editing_states(&app.inputmode); | |
| 285 | 285 | } | |
| 286 | 286 | ||
| 287 | + | // Remove from Current Playlsit | |
| 288 | + | KeyCode::Backspace => { | |
| 289 | + | app.remove_from_current_playlist(); | |
| 290 | + | } | |
| 291 | + | ||
| 287 | 292 | _ => {} | |
| 288 | 293 | } | |
| 289 | 294 | } | |