diff --git a/src/commands.rs b/src/commands.rs index 9445c67..060290f 100644 --- a/src/commands.rs +++ b/src/commands.rs @@ -2,25 +2,21 @@ use std::collections::HashMap; use std::sync::Arc; use std::time::Duration; +use crate::command::{ + parse, Command, GotoMode, JumpMode, MoveAmount, MoveMode, SeekDirection, ShiftMode, TargetMode, +}; use crate::config::Config; use crate::events::EventManager; use crate::library::Library; use crate::queue::{Queue, RepeatSetting}; use crate::spotify::{Spotify, VOLUME_PERCENT}; use crate::traits::{IntoBoxedViewExt, ViewExt}; -use crate::ui::contextmenu::ContextMenu; +use crate::ui::contextmenu::{AddToPlaylistMenu, ContextMenu, SelectArtistMenu}; use crate::ui::help::HelpView; use crate::ui::layout::Layout; use crate::ui::modal::Modal; use crate::ui::search_results::SearchResultsView; use crate::UserData; -use crate::{ - command::{ - parse, Command, GotoMode, JumpMode, MoveAmount, MoveMode, SeekDirection, ShiftMode, - TargetMode, - }, - ui::contextmenu::AddToPlaylistMenu, -}; use cursive::event::{Event, Key}; use cursive::traits::View; use cursive::views::Dialog; @@ -273,6 +269,8 @@ impl CommandManager { contextmenu.on_command(s, cmd)? } else if let Some(mut add_track_menu) = s.find_name::("addtrackmenu") { add_track_menu.on_command(s, cmd)? + } else if let Some(mut select_artist) = s.find_name::("selectartist") { + select_artist.on_command(s, cmd)? } else { let mut main = s .find_name::("main") diff --git a/src/ui/contextmenu.rs b/src/ui/contextmenu.rs index 85b98a7..dd65bb2 100644 --- a/src/ui/contextmenu.rs +++ b/src/ui/contextmenu.rs @@ -72,7 +72,6 @@ impl ContextMenu { let library = library.clone(); playlist.append_tracks(&[track.clone()], spotify, library); - // playlist.map(|p| p.append_tracks(&[track.clone()], spotify, library)); c.pop_layer(); // Close add_track_dialog too @@ -225,6 +224,7 @@ impl ContextMenu { impl ViewExt for AddToPlaylistMenu { fn on_command(&mut self, s: &mut Cursive, cmd: &Command) -> Result { + log::info!("playlist command: {:?}", cmd); handle_move_command::(&mut self.dialog, s, cmd, "addplaylist_select") } } @@ -235,6 +235,13 @@ impl ViewExt for ContextMenu { } } +impl ViewExt for SelectArtistMenu { + fn on_command(&mut self, s: &mut Cursive, cmd: &Command) -> Result { + log::info!("artist move command: {:?}", cmd); + handle_move_command::(&mut self.dialog, s, cmd, "artist_select") + } +} + fn handle_move_command( sel: &mut Modal, s: &mut Cursive, diff --git a/src/ui/listview.rs b/src/ui/listview.rs index e2dd110..a436452 100644 --- a/src/ui/listview.rs +++ b/src/ui/listview.rs @@ -509,9 +509,7 @@ impl ViewExt for ListView { let dialog = ContextMenu::select_artist_dialog( library, queue, artists, ); - _s.add_layer(dialog); - - Ok(CommandResult::Consumed(None)) + Ok(CommandResult::Modal(Box::new(dialog))) } }; }