mirror of
https://codeberg.org/unspeaker/perch.git
synced 2025-12-07 18:16:42 +01:00
add year column
This commit is contained in:
parent
4bfdd28638
commit
2ebf2c6cef
5 changed files with 52 additions and 56 deletions
|
|
@ -30,60 +30,31 @@ impl<T> Column<T, fn(&T)->Option<Arc<str>>, fn(&mut [T], usize, &str)> {
|
|||
}
|
||||
}
|
||||
|
||||
macro_rules! setter {
|
||||
($method:ident) => {
|
||||
|entries: &mut [Entry], index: usize, value: &str|{
|
||||
if let Some(entries) = paths_under(entries, index) {
|
||||
for entry in entries.iter() {
|
||||
entry.write().unwrap().$method(&value);
|
||||
}
|
||||
} else if let Some(entry) = entries.get_mut(index) {
|
||||
entry.$method(&value)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl Default for Columns<Entry, fn(&Entry)->Option<Arc<str>>, fn(&mut [Entry], usize, &str)> {
|
||||
fn default () -> Self {
|
||||
Self(vec![
|
||||
|
||||
Column::new(&"HASH", 8, |entry: &Entry|entry.hash()),
|
||||
|
||||
Column::new(&"SIZE", 8, |entry: &Entry|entry.size()),
|
||||
|
||||
Column::new(&"FILE", 80, |entry: &Entry|entry.name()),
|
||||
|
||||
Column::new(&"ARTIST", 30, |entry: &Entry|entry.artist())
|
||||
.setter(|entries: &mut [Entry], index: usize, value: &str|{
|
||||
if let Some(entries) = paths_under(entries, index) {
|
||||
for entry in entries.iter() {
|
||||
entry.write().unwrap().set_artist(&value);
|
||||
}
|
||||
} else if let Some(entry) = entries.get_mut(index) {
|
||||
entry.set_artist(&value)
|
||||
}
|
||||
}),
|
||||
|
||||
Column::new(&"RELEASE", 30, |entry: &Entry|entry.album())
|
||||
.setter(|entries: &mut [Entry], index: usize, value: &str|{
|
||||
if let Some(entries) = paths_under(entries, index) {
|
||||
for entry in entries.iter() {
|
||||
entry.write().unwrap().set_album(&value);
|
||||
}
|
||||
} else if let Some(entry) = entries.get_mut(index) {
|
||||
entry.set_album(&value)
|
||||
}
|
||||
}),
|
||||
|
||||
Column::new(&"TRACK", 5, |entry: &Entry|entry.track())
|
||||
.setter(|entries: &mut [Entry], index: usize, value: &str|{
|
||||
if let Some(entries) = paths_under(entries, index) {
|
||||
for entry in entries.iter() {
|
||||
entry.write().unwrap().set_track(&value);
|
||||
}
|
||||
} else if let Some(entry) = entries.get_mut(index) {
|
||||
entry.set_track(&value)
|
||||
}
|
||||
}),
|
||||
|
||||
Column::new(&"TITLE", 80, |entry: &Entry|entry.title())
|
||||
.setter(|entries: &mut [Entry], index: usize, value: &str|{
|
||||
if let Some(entries) = paths_under(entries, index) {
|
||||
for entry in entries.iter() {
|
||||
entry.write().unwrap().set_title(&value);
|
||||
}
|
||||
} else if let Some(entry) = entries.get_mut(index) {
|
||||
entry.set_title(&value)
|
||||
}
|
||||
}),
|
||||
|
||||
Column::new(&"HASH", 8, |entry: &Entry|entry.hash()),
|
||||
Column::new(&"SIZE", 8, |entry: &Entry|entry.size()),
|
||||
Column::new(&"FILE", 80, |entry: &Entry|entry.name()),
|
||||
Column::new(&"ARTIST", 30, |entry: &Entry|entry.artist()).setter(setter!(set_artist)),
|
||||
Column::new(&"YEAR", 5, |entry: &Entry|entry.year()).setter(setter!(set_year)),
|
||||
Column::new(&"RELEASE", 30, |entry: &Entry|entry.album()).setter(setter!(set_album)),
|
||||
Column::new(&"TRACK", 5, |entry: &Entry|entry.track()).setter(setter!(set_track)),
|
||||
Column::new(&"TITLE", 80, |entry: &Entry|entry.title()).setter(setter!(set_title)),
|
||||
])
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue