From 04e5d2ad28af2c0b561ed4443eabddc4ee70d1f2 Mon Sep 17 00:00:00 2001 From: krolxon Date: Fri, 26 Apr 2024 14:32:58 +0530 Subject: alot of edge cases removed, ui improvments --- src/browser.rs | 43 +++++++++++++++++++++++++++++-------------- 1 file changed, 29 insertions(+), 14 deletions(-) (limited to 'src/browser.rs') diff --git a/src/browser.rs b/src/browser.rs index 0efec1b..a8c62fe 100755 --- a/src/browser.rs +++ b/src/browser.rs @@ -1,3 +1,5 @@ +use mpd::Query; + use crate::{app::AppResult, connection::Connection}; #[derive(Debug)] @@ -59,32 +61,45 @@ impl FileBrowser { if t == "directory" { if path != "." { self.prev_path = self.path.clone(); - self.path = path.to_string(); + self.path = self.prev_path.clone() + "/" + path; self.update_directory(conn)?; self.prev_selected = self.selected; self.selected = 0; + // println!("self.path: {}", self.path); + // println!("self.prev_pat: {}", self.prev_path); } } else { - let list = conn - .songs_filenames - .iter() - .map(|f| f.as_str()) - .collect::>(); - let (filename, _) = rust_fuzzy_search::fuzzy_search_sorted(&path, &list) - .get(0) - .unwrap() - .clone(); + // let list = conn + // .songs_filenames + // .iter() + // .map(|f| f.as_str()) + // .collect::>(); + // let (filename, _) = rust_fuzzy_search::fuzzy_search_sorted(&path, &list) + // .get(0) + // .unwrap() + // .clone(); - let song = conn.get_song_with_only_filename(filename); - conn.push(&song)?; + for filename in conn.songs_filenames.clone().iter() { + if filename.contains(path) { + let song = conn.get_song_with_only_filename(filename); + conn.push(&song)?; + } + } } Ok(()) } pub fn handle_go_back(&mut self, conn: &mut Connection) -> AppResult<()> { - self.path = self.prev_path.clone(); + if self.prev_path != "." { + let r = self.path.rfind("/").unwrap(); + self.path = self.path.as_str()[..r].to_string(); + self.update_directory(conn)?; + } else { + self.path = self.prev_path.clone(); + self.update_directory(conn)?; + } + self.selected = self.prev_selected; - self.update_directory(conn)?; Ok(()) } } -- cgit v1.2.3