aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rwxr-xr-xsrc/app.rs24
-rwxr-xr-xsrc/handler.rs5
2 files changed, 29 insertions, 0 deletions
diff --git a/src/app.rs b/src/app.rs
index 88f6efc..292ef63 100755
--- a/src/app.rs
+++ b/src/app.rs
@@ -113,6 +113,30 @@ impl App {
Ok(())
}
+ pub fn remove_from_current_playlist(&mut self) {
+ let mut file = String::new();
+ match self.selected_tab {
+ SelectedTab::DirectoryBrowser => {
+ let (_, f) = self.browser.filetree.get(self.browser.selected).unwrap();
+ file.push_str(f);
+ }
+
+ SelectedTab::Queue => {
+ file = self.queue_list.list.get(self.queue_list.index).unwrap().to_string();
+ }
+
+ _ => {}
+ }
+
+ for (i, song) in self.queue_list.list.clone().iter().enumerate() {
+ if song.contains(&file) {
+ self.conn.conn.delete(i as u32).unwrap();
+ }
+ }
+
+ self.update_queue();
+ }
+
pub fn cycle_tabls(&mut self) {
self.selected_tab = match self.selected_tab {
SelectedTab::DirectoryBrowser => SelectedTab::Queue,
diff --git a/src/handler.rs b/src/handler.rs
index c3b001e..2a18a1c 100755
--- a/src/handler.rs
+++ b/src/handler.rs
@@ -284,6 +284,11 @@ pub fn handle_key_events(key_event: KeyEvent, app: &mut App) -> AppResult<()> {
app.inputmode = InputMode::toggle_editing_states(&app.inputmode);
}
+ // Remove from Current Playlsit
+ KeyCode::Backspace => {
+ app.remove_from_current_playlist();
+ }
+
_ => {}
}
}