@@ -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::<AddToPlaylistMenu>("addtrackmenu") {
|
||||
add_track_menu.on_command(s, cmd)?
|
||||
} else if let Some(mut select_artist) = s.find_name::<SelectArtistMenu>("selectartist") {
|
||||
select_artist.on_command(s, cmd)?
|
||||
} else {
|
||||
let mut main = s
|
||||
.find_name::<Layout>("main")
|
||||
|
||||
@@ -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<CommandResult, String> {
|
||||
log::info!("playlist command: {:?}", cmd);
|
||||
handle_move_command::<Playlist>(&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<CommandResult, String> {
|
||||
log::info!("artist move command: {:?}", cmd);
|
||||
handle_move_command::<Artist>(&mut self.dialog, s, cmd, "artist_select")
|
||||
}
|
||||
}
|
||||
|
||||
fn handle_move_command<T: 'static>(
|
||||
sel: &mut Modal<Dialog>,
|
||||
s: &mut Cursive,
|
||||
|
||||
@@ -509,9 +509,7 @@ impl<I: ListItem + Clone> ViewExt for ListView<I> {
|
||||
let dialog = ContextMenu::select_artist_dialog(
|
||||
library, queue, artists,
|
||||
);
|
||||
_s.add_layer(dialog);
|
||||
|
||||
Ok(CommandResult::Consumed(None))
|
||||
Ok(CommandResult::Modal(Box::new(dialog)))
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user