add unadded songs to queue on <space>

This commit is contained in:
krolxon 2024-04-28 16:42:50 +05:30
parent 5eafc1898b
commit 6e631a0520
3 changed files with 28 additions and 15 deletions

View File

@ -114,34 +114,47 @@ impl App {
Ok(())
}
pub fn remove_from_current_playlist(&mut self) {
let mut file = String::new();
pub fn handle_remove_or_from_current_playlist(&mut self) -> AppResult<()> {
match self.selected_tab {
SelectedTab::DirectoryBrowser => {
let (_, f) = self.browser.filetree.get(self.browser.selected).unwrap();
file.push_str(f);
let (_, file) = self.browser.filetree.get(self.browser.selected).unwrap();
self.browser.selected += 1;
let mut status = false;
for (i, song) in self.queue_list.list.clone().iter().enumerate() {
if song.contains(file) {
self.conn.conn.delete(i as u32).unwrap();
status = true;
}
}
if !status {
let song = self
.conn
.get_song_with_only_filename(&self.conn.get_full_path(&file).unwrap());
self.conn.conn.push(&song)?;
}
}
SelectedTab::Queue => {
file = self
let 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();
}
}
}
_ => {}
}
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();
Ok(())
}
pub fn cycle_tabls(&mut self) {

View File

@ -323,7 +323,7 @@ pub fn handle_key_events(key_event: KeyEvent, app: &mut App) -> AppResult<()> {
// Remove from Current Playlsit
KeyCode::Char(' ') | KeyCode::Backspace => {
app.remove_from_current_playlist();
app.handle_remove_or_from_current_playlist()?;
}
// Change playlist name

View File

@ -62,9 +62,9 @@ fn draw_directory_browser(frame: &mut Frame, app: &mut App, size: Rect) {
}
}
if status {
list.push(ListItem::new(s.clone().bold()));
list.push(ListItem::new(s.clone().magenta().bold()));
} else {
list.push(ListItem::new(Line::styled(s, Style::default())));
list.push(ListItem::new(s.clone()));
}
} else {
list.push(ListItem::new(Line::styled(
@ -115,7 +115,7 @@ fn draw_queue(frame: &mut Frame, app: &mut App, size: Rect) {
let mut items: Vec<ListItem> = vec![];
for item in app.queue_list.list.iter() {
if item.contains(&app.conn.current_song.file) {
items.push(ListItem::new(item.clone().bold()))
items.push(ListItem::new(item.clone().magenta().bold()))
} else {
items.push(ListItem::new(item.clone()));
}