make album column for tracks configurable
introduces new config variable `album_column` fixes #267
This commit is contained in:
@@ -141,6 +141,7 @@ Possible configuration values are:
|
|||||||
by default <true/false>
|
by default <true/false>
|
||||||
* `notify`: Enable or disable desktop notifications, off by default <true/false>
|
* `notify`: Enable or disable desktop notifications, off by default <true/false>
|
||||||
* `bitrate`: The audio bitrate to use for streaming, can be 96, 160, or 320 (default is 320)
|
* `bitrate`: The audio bitrate to use for streaming, can be 96, 160, or 320 (default is 320)
|
||||||
|
* `album_column`: Show album column for tracks, on by default <true/false>
|
||||||
|
|
||||||
|
|
||||||
Keybindings can be configured in `[keybindings]` section in `config.toml`, e.g. as such:
|
Keybindings can be configured in `[keybindings]` section in `config.toml`, e.g. as such:
|
||||||
|
|||||||
@@ -176,7 +176,7 @@ impl ListItem for Album {
|
|||||||
format!("{}", self)
|
format!("{}", self)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn display_center(&self) -> String {
|
fn display_center(&self, _library: Arc<Library>) -> String {
|
||||||
"".to_string()
|
"".to_string()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -148,7 +148,7 @@ impl ListItem for Artist {
|
|||||||
format!("{}", self)
|
format!("{}", self)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn display_center(&self) -> String {
|
fn display_center(&self, _library: Arc<Library>) -> String {
|
||||||
"".to_string()
|
"".to_string()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ pub struct Config {
|
|||||||
pub volnorm_pregain: Option<f32>,
|
pub volnorm_pregain: Option<f32>,
|
||||||
pub notify: Option<bool>,
|
pub notify: Option<bool>,
|
||||||
pub bitrate: Option<u32>,
|
pub bitrate: Option<u32>,
|
||||||
|
pub album_column: Option<bool>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Serialize, Deserialize, Debug, Default, Clone)]
|
#[derive(Serialize, Deserialize, Debug, Default, Clone)]
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ impl ListItem for Episode {
|
|||||||
self.name.clone()
|
self.name.clone()
|
||||||
}
|
}
|
||||||
|
|
||||||
fn display_center(&self) -> String {
|
fn display_center(&self, _library: Arc<Library>) -> String {
|
||||||
"".to_string()
|
"".to_string()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ use serde::Serialize;
|
|||||||
use crate::album::Album;
|
use crate::album::Album;
|
||||||
use crate::artist::Artist;
|
use crate::artist::Artist;
|
||||||
use crate::config;
|
use crate::config;
|
||||||
|
use crate::config::Config;
|
||||||
use crate::events::EventManager;
|
use crate::events::EventManager;
|
||||||
use crate::playable::Playable;
|
use crate::playable::Playable;
|
||||||
use crate::playlist::Playlist;
|
use crate::playlist::Playlist;
|
||||||
@@ -65,6 +66,10 @@ impl Library {
|
|||||||
.expect("could not readlock listview content")
|
.expect("could not readlock listview content")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn config(&self) -> &Config {
|
||||||
|
&self.spotify.cfg
|
||||||
|
}
|
||||||
|
|
||||||
fn load_cache<T: DeserializeOwned>(&self, cache_path: PathBuf, store: Arc<RwLock<Vec<T>>>) {
|
fn load_cache<T: DeserializeOwned>(&self, cache_path: PathBuf, store: Arc<RwLock<Vec<T>>>) {
|
||||||
if let Ok(contents) = std::fs::read_to_string(&cache_path) {
|
if let Ok(contents) = std::fs::read_to_string(&cache_path) {
|
||||||
debug!("loading cache from {}", cache_path.display());
|
debug!("loading cache from {}", cache_path.display());
|
||||||
|
|||||||
@@ -76,8 +76,8 @@ impl ListItem for Playable {
|
|||||||
self.as_listitem().display_left()
|
self.as_listitem().display_left()
|
||||||
}
|
}
|
||||||
|
|
||||||
fn display_center(&self) -> String {
|
fn display_center(&self, library: Arc<Library>) -> String {
|
||||||
self.as_listitem().display_center()
|
self.as_listitem().display_center(library)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn display_right(&self, library: Arc<Library>) -> String {
|
fn display_right(&self, library: Arc<Library>) -> String {
|
||||||
|
|||||||
@@ -128,7 +128,7 @@ impl ListItem for Playlist {
|
|||||||
self.name.clone()
|
self.name.clone()
|
||||||
}
|
}
|
||||||
|
|
||||||
fn display_center(&self) -> String {
|
fn display_center(&self, _library: Arc<Library>) -> String {
|
||||||
"".to_string()
|
"".to_string()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -92,7 +92,7 @@ impl ListItem for Show {
|
|||||||
format!("{}", self)
|
format!("{}", self)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn display_center(&self) -> String {
|
fn display_center(&self, _library: Arc<Library>) -> String {
|
||||||
"".to_string()
|
"".to_string()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -153,8 +153,12 @@ impl ListItem for Track {
|
|||||||
format!("{}", self)
|
format!("{}", self)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn display_center(&self) -> String {
|
fn display_center(&self, library: Arc<Library>) -> String {
|
||||||
self.album.to_string()
|
if library.config().album_column.unwrap_or(true) {
|
||||||
|
self.album.to_string()
|
||||||
|
} else {
|
||||||
|
"".to_string()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn display_right(&self, library: Arc<Library>) -> String {
|
fn display_right(&self, library: Arc<Library>) -> String {
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ use crate::track::Track;
|
|||||||
pub trait ListItem: Sync + Send + 'static {
|
pub trait ListItem: Sync + Send + 'static {
|
||||||
fn is_playing(&self, queue: Arc<Queue>) -> bool;
|
fn is_playing(&self, queue: Arc<Queue>) -> bool;
|
||||||
fn display_left(&self) -> String;
|
fn display_left(&self) -> String;
|
||||||
fn display_center(&self) -> String;
|
fn display_center(&self, library: Arc<Library>) -> String;
|
||||||
fn display_right(&self, library: Arc<Library>) -> String;
|
fn display_right(&self, library: Arc<Library>) -> String;
|
||||||
fn play(&mut self, queue: Arc<Queue>);
|
fn play(&mut self, queue: Arc<Queue>);
|
||||||
fn queue(&mut self, queue: Arc<Queue>);
|
fn queue(&mut self, queue: Arc<Queue>);
|
||||||
|
|||||||
@@ -229,7 +229,7 @@ impl<I: ListItem> View for ListView<I> {
|
|||||||
};
|
};
|
||||||
|
|
||||||
let left = item.display_left();
|
let left = item.display_left();
|
||||||
let center = item.display_center();
|
let center = item.display_center(self.library.clone());
|
||||||
let right = item.display_right(self.library.clone());
|
let right = item.display_right(self.library.clone());
|
||||||
let draw_center = !center.is_empty();
|
let draw_center = !center.is_empty();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user