From bb5bcea3ff0f3205d087637ab485ef066309adeb Mon Sep 17 00:00:00 2001 From: krolxon Date: Mon, 13 May 2024 13:41:26 +0530 Subject: [PATCH] fix #4 --- src/app.rs | 35 ++++++++++++++--------------------- src/main.rs | 7 ++----- 2 files changed, 16 insertions(+), 26 deletions(-) diff --git a/src/app.rs b/src/app.rs index 61f9e9e..bcfeeab 100755 --- a/src/app.rs +++ b/src/app.rs @@ -12,12 +12,12 @@ pub type AppResult = std::result::Result>; /// Application #[derive(Debug)] pub struct App { - pub running: bool, // Check if app is running - pub conn: Connection, // Connection - pub browser: FileBrowser, // Directory browser - pub queue_list: ContentList, // Stores the current playing queue - pub pl_list: ContentList, // Stores list of playlists - pub selected_tab: SelectedTab, // Used to switch between tabs + pub running: bool, // Check if app is running + pub conn: Connection, // Connection + pub browser: FileBrowser, // Directory browser + pub queue_list: ContentList, // Stores the current playing queue + pub pl_list: ContentList, // Stores list of playlists + pub selected_tab: SelectedTab, // Used to switch between tabs // Search pub inputmode: InputMode, // Defines input mode, Normal or Search @@ -194,15 +194,6 @@ impl App { browser.selected = 0; } } 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 index = self .queue_list .list @@ -212,12 +203,14 @@ impl App { if index.is_some() { self.conn.conn.switch(index.unwrap() as u32)?; } else { - for filename in self.conn.songs_filenames.clone().iter() { - if filename.contains(path) { - let song = self.conn.get_song_with_only_filename(filename); - self.conn.push(&song)?; - } - } + let mut filename = format!("{}/{}", browser.path, path); + + // Remove "./" from the beginning of filename + filename.remove(0); + filename.remove(0); + + let song = self.conn.get_song_with_only_filename(&filename); + self.conn.push(&song)?; // updating queue, to avoid multiple pushes of the same songs if we enter multiple times before the queue gets updated self.update_queue(); diff --git a/src/main.rs b/src/main.rs index 3e40ead..0b856b4 100755 --- a/src/main.rs +++ b/src/main.rs @@ -1,3 +1,4 @@ +use ratatui::prelude::*; use rmptui::app::App; use rmptui::app::AppResult; use rmptui::event::event::Event; @@ -6,10 +7,6 @@ use rmptui::event::handler; use rmptui::tui; use std::env; use std::io; -use ratatui::prelude::*; - -pub type Result = core::result::Result; -pub type Error = Box; fn main() -> AppResult<()> { // Connection @@ -26,7 +23,7 @@ fn main() -> AppResult<()> { tui.init()?; // initial directory read - app.browser.update_directory(&mut app.conn).unwrap(); + app.browser.update_directory(&mut app.conn)?; while app.running { tui.draw(&mut app)?;