diff --git a/src/commands.rs b/src/commands.rs index 94af581..0e447f1 100644 --- a/src/commands.rs +++ b/src/commands.rs @@ -198,25 +198,6 @@ impl CommandManager { ); } - { - let queue = queue.clone(); - self.register_command( - "share", - Some(Box::new(move |_, args| { - if let Some(url) = args.get(0).and_then(|source| match source.as_str() { - "current" => queue.get_current().and_then(|t| t.share_url()), - _ => None, - }) { - ClipboardProvider::new() - .and_then(|mut ctx: ClipboardContext| ctx.set_contents(url)) - .unwrap(); - } - - Ok(None) - })), - ) - } - { let spotify = spotify.clone(); self.register_command( diff --git a/src/ui/listview.rs b/src/ui/listview.rs index 00f4b69..eafcd7b 100644 --- a/src/ui/listview.rs +++ b/src/ui/listview.rs @@ -316,23 +316,22 @@ impl ViewExt for ListView { } if cmd == "share" { - return args.get(0).map_or_else( - || Err("wrong number of parameters".to_string()), - |source| match source.as_str() { - "selected" => { - if let Some(url) = self.content.read().ok().and_then(|content| { - content.get(self.selected).and_then(ListItem::share_url) - }) { - ClipboardProvider::new() - .and_then(|mut ctx: ClipboardContext| ctx.set_contents(url)) - .unwrap(); - } - - Ok(CommandResult::Consumed(None)) - } - _ => Ok(CommandResult::Ignored), - }, - ); + return if let Some(url) = args.get(0).and_then(|source| match source.as_str() { + "selected" => self + .content + .read() + .ok() + .and_then(|content| content.get(self.selected).and_then(|i| i.share_url())), , + "current" => self.queue.get_current().and_then(|t| t.share_url()), + _ => None, + }) { + ClipboardProvider::new() + .and_then(|mut ctx: ClipboardContext| ctx.set_contents(url)) + .ok(); + Ok(CommandResult::Consumed(None)) + } else { + Ok(CommandResult::Ignored) + }; } if cmd == "move" {