Fix some errors and warnings when enabling/disabling features (#821)

* Fix E&Ws when enabling features

* `share_clipboard` feature can be disabled more cleanly

* `notify` feature can be disabled more cleanly
This commit is contained in:
cyqsimon
2022-06-11 03:32:59 +08:00
committed by GitHub
parent ce6b360cba
commit fefbd4191d
8 changed files with 48 additions and 36 deletions

View File

@@ -43,6 +43,7 @@ enum ContextMenuAction {
PlayTrack(Box<Track>),
ShowItem(Box<dyn ListItem>),
SelectArtist(Vec<Artist>),
#[cfg(feature = "share_clipboard")]
ShareUrl(String),
AddToPlaylist(Box<Track>),
ShowRecommendations(Box<Track>),
@@ -183,13 +184,14 @@ impl ContextMenu {
if let Some(a) = item.album(queue.clone()) {
content.add_item("Show album", ContextMenuAction::ShowItem(Box::new(a)));
}
if let Some(url) = item.share_url() {
#[cfg(feature = "share_clipboard")]
content.add_item("Share", ContextMenuAction::ShareUrl(url));
}
if let Some(url) = item.album(queue.clone()).and_then(|a| a.share_url()) {
#[cfg(feature = "share_clipboard")]
content.add_item("Share album", ContextMenuAction::ShareUrl(url));
#[cfg(feature = "share_clipboard")]
{
if let Some(url) = item.share_url() {
content.add_item("Share", ContextMenuAction::ShareUrl(url));
}
if let Some(url) = item.album(queue.clone()).and_then(|a| a.share_url()) {
content.add_item("Share album", ContextMenuAction::ShareUrl(url));
}
}
if let Some(t) = item.track() {
content.insert_item(
@@ -232,8 +234,8 @@ impl ContextMenu {
s.call_on_name("main", move |v: &mut Layout| v.push_view(view));
}
}
#[cfg(feature = "share_clipboard")]
ContextMenuAction::ShareUrl(url) => {
#[cfg(feature = "share_clipboard")]
write_share(url.to_string());
}
ContextMenuAction::AddToPlaylist(track) => {

View File

@@ -1,5 +1,4 @@
use std::collections::HashSet;
use std::fs::File;
use std::io::Write;
use std::path::PathBuf;
use std::process::{Child, Stdio};
@@ -240,6 +239,7 @@ impl ViewExt for CoverView {
track.unsave(self.library.clone());
}
}
#[cfg(feature = "share_clipboard")]
Command::Share(_mode) => {
let url = self
.queue
@@ -247,7 +247,6 @@ impl ViewExt for CoverView {
.and_then(|t| t.as_listitem().share_url());
if let Some(url) = url {
#[cfg(feature = "share_clipboard")]
crate::sharing::write_share(url);
}

View File

@@ -24,12 +24,12 @@ use crate::model::track::Track;
use crate::queue::Queue;
#[cfg(feature = "share_clipboard")]
use crate::sharing::{read_share, write_share};
use crate::spotify::UriType;
use crate::traits::{IntoBoxedViewExt, ListItem, ViewExt};
use crate::ui::album::AlbumView;
use crate::ui::artist::ArtistView;
use crate::ui::contextmenu::ContextMenu;
use crate::ui::pagination::Pagination;
use crate::{spotify::UriType, spotify_url::SpotifyUrl};
pub struct ListView<I: ListItem> {
content: Arc<RwLock<Vec<I>>>,
@@ -400,6 +400,7 @@ impl<I: ListItem + Clone> ViewExt for ListView<I> {
return Ok(CommandResult::Consumed(None));
}
#[cfg(feature = "share_clipboard")]
Command::Share(mode) => {
let url = match mode {
TargetMode::Selected => self.content.read().ok().and_then(|content| {
@@ -412,7 +413,6 @@ impl<I: ListItem + Clone> ViewExt for ListView<I> {
};
if let Some(url) = url {
#[cfg(feature = "share_clipboard")]
write_share(url);
}
@@ -550,7 +550,9 @@ impl<I: ListItem + Clone> ViewExt for ListView<I> {
let url = match source {
InsertSource::Input(url) => Some(url.clone()),
#[cfg(feature = "share_clipboard")]
InsertSource::Clipboard => read_share().and_then(SpotifyUrl::from_url),
InsertSource::Clipboard => {
read_share().and_then(crate::spotify_url::SpotifyUrl::from_url)
}
};
let spotify = self.queue.get_spotify();