various non-functional code cleanups

This commit is contained in:
Henrik Friedrichsen
2020-02-21 23:33:08 +01:00
parent 7d9a81fa0a
commit d2915316da
15 changed files with 41 additions and 49 deletions

View File

@@ -50,11 +50,7 @@ impl AlbumView {
.tab(
"artists",
"Artists",
ListView::new(
Arc::new(RwLock::new(artists)),
queue.clone(),
library.clone(),
),
ListView::new(Arc::new(RwLock::new(artists)), queue, library),
);
Self { album, tabs }

View File

@@ -51,7 +51,6 @@ impl ArtistView {
let related: Arc<RwLock<Vec<Artist>>> = Arc::new(RwLock::new(Vec::new()));
{
let related = related.clone();
let spotify = spotify.clone();
let id = artist.id.clone();
let library = library.clone();
thread::spawn(move || {
@@ -83,7 +82,7 @@ impl ArtistView {
tabs.add_tab(
"top_tracks",
"Top 10",
ListView::new(top_tracks.clone(), queue.clone(), library.clone()),
ListView::new(top_tracks, queue.clone(), library.clone()),
);
tabs.add_tab(
@@ -99,7 +98,7 @@ impl ArtistView {
tabs.add_tab(
"related",
"Related Artists",
ListView::new(related.clone(), queue.clone(), library.clone()),
ListView::new(related, queue, library),
);
Self { artist, tabs }

View File

@@ -242,7 +242,7 @@ impl View for Layout {
if position.y < self.last_size.y.saturating_sub(2 + cmdline_height) {
if let Some(ref id) = self.focus {
let screen = self.views.get_mut(id).unwrap();
screen.view.on_event(event.clone());
screen.view.on_event(event);
}
} else if position.y < self.last_size.y - cmdline_height {
self.statusbar.on_event(

View File

@@ -37,7 +37,7 @@ impl LibraryView {
.tab(
"playlists",
"Playlists",
PlaylistsView::new(queue.clone(), library.clone()),
PlaylistsView::new(queue, library.clone()),
);
Self { tabs }

View File

@@ -387,14 +387,10 @@ impl<I: ListItem + Clone> ViewExt for ListView<I> {
let queue = self.queue.clone();
let library = self.library.clone();
let target: Option<Box<dyn ListItem>> = match mode {
TargetMode::Current => {
self.queue.get_current().and_then(|t| Some(t.as_listitem()))
}
TargetMode::Current => self.queue.get_current().map(|t| t.as_listitem()),
TargetMode::Selected => {
let content = self.content.read().unwrap();
content
.get(self.selected)
.and_then(|t| Some(t.as_listitem()))
content.get(self.selected).map(|t| t.as_listitem())
}
};

View File

@@ -21,7 +21,7 @@ pub struct PlaylistsView {
impl PlaylistsView {
pub fn new(queue: Arc<Queue>, library: Arc<Library>) -> Self {
Self {
list: ListView::new(library.playlists.clone(), queue.clone(), library.clone()),
list: ListView::new(library.playlists.clone(), queue, library.clone()),
library,
}
}

View File

@@ -73,8 +73,7 @@ impl SearchView {
let pagination_albums = list_albums.get_pagination().clone();
let list_artists = ListView::new(results_artists.clone(), queue.clone(), library.clone());
let pagination_artists = list_artists.get_pagination().clone();
let list_playlists =
ListView::new(results_playlists.clone(), queue.clone(), library.clone());
let list_playlists = ListView::new(results_playlists.clone(), queue, library);
let pagination_playlists = list_playlists.get_pagination().clone();
let tabs = TabView::new()
@@ -272,19 +271,20 @@ impl SearchView {
let total_items = handler(&spotify, &results, &query, 0, false) as usize;
// register paginator if the API has more than one page of results
if paginator.is_some() && total_items > results.read().unwrap().len() {
let mut paginator = paginator.unwrap();
let ev = ev.clone();
if let Some(mut paginator) = paginator {
if total_items > results.read().unwrap().len() {
let ev = ev.clone();
// paginator callback
let cb = move |items: Arc<RwLock<Vec<I>>>| {
let offset = items.read().unwrap().len();
handler(&spotify, &results, &query, offset, true);
ev.trigger();
};
paginator.set(total_items, Box::new(cb));
} else if let Some(mut p) = paginator {
p.clear()
// paginator callback
let cb = move |items: Arc<RwLock<Vec<I>>>| {
let offset = items.read().unwrap().len();
handler(&spotify, &results, &query, offset, true);
ev.trigger();
};
paginator.set(total_items, Box::new(cb));
} else {
paginator.clear()
}
}
ev.trigger();
});

View File

@@ -125,7 +125,7 @@ impl View for StatusBar {
let volume = format!(
" [{}%]",
(self.spotify.volume() as f64 / 0xffff as f64 * 100.0) as u16
(self.spotify.volume() as f64 / 65535_f64 * 100.0) as u16
);
printer.with_color(style_bar_bg, |printer| {