Display saved/followed checkmark
This commit is contained in:
@@ -18,9 +18,9 @@ pub struct LibraryView {
|
||||
impl LibraryView {
|
||||
pub fn new(queue: Arc<Queue>, library: Arc<Library>) -> Self {
|
||||
let tabs = TabView::new()
|
||||
.tab("tracks", "Tracks", ListView::new(library.tracks.clone(), queue.clone()))
|
||||
.tab("albums", "Albums", ListView::new(library.albums.clone(), queue.clone()))
|
||||
.tab("artists", "Artists", ListView::new(library.artists.clone(), queue.clone()))
|
||||
.tab("tracks", "Tracks", ListView::new(library.tracks.clone(), queue.clone(), library.clone()))
|
||||
.tab("albums", "Albums", ListView::new(library.albums.clone(), queue.clone(), library.clone()))
|
||||
.tab("artists", "Artists", ListView::new(library.artists.clone(), queue.clone(), library.clone()))
|
||||
.tab("playlists", "Playlists", PlaylistsView::new(queue.clone(), library.clone()));
|
||||
|
||||
Self {
|
||||
|
||||
@@ -10,6 +10,7 @@ use cursive::{Cursive, Printer, Rect, Vec2};
|
||||
use unicode_width::UnicodeWidthStr;
|
||||
|
||||
use commands::CommandResult;
|
||||
use library::Library;
|
||||
use queue::Queue;
|
||||
use track::Track;
|
||||
use traits::{ListItem, ViewExt};
|
||||
@@ -84,11 +85,12 @@ pub struct ListView<I: ListItem> {
|
||||
last_size: Vec2,
|
||||
scrollbar: ScrollBase,
|
||||
queue: Arc<Queue>,
|
||||
library: Arc<Library>,
|
||||
pagination: Pagination<I>,
|
||||
}
|
||||
|
||||
impl<I: ListItem> ListView<I> {
|
||||
pub fn new(content: Arc<RwLock<Vec<I>>>, queue: Arc<Queue>) -> Self {
|
||||
pub fn new(content: Arc<RwLock<Vec<I>>>, queue: Arc<Queue>, library: Arc<Library>) -> Self {
|
||||
Self {
|
||||
content,
|
||||
last_content_len: 0,
|
||||
@@ -96,6 +98,7 @@ impl<I: ListItem> ListView<I> {
|
||||
last_size: Vec2::new(0, 0),
|
||||
scrollbar: ScrollBase::new(),
|
||||
queue,
|
||||
library,
|
||||
pagination: Pagination::default(),
|
||||
}
|
||||
}
|
||||
@@ -174,7 +177,7 @@ impl<I: ListItem> View for ListView<I> {
|
||||
};
|
||||
|
||||
let left = item.display_left();
|
||||
let right = item.display_right();
|
||||
let right = item.display_right(self.library.clone());
|
||||
|
||||
// draw left string
|
||||
printer.with_color(style, |printer| {
|
||||
|
||||
@@ -20,7 +20,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()),
|
||||
list: ListView::new(library.playlists.clone(), queue.clone(), library.clone()),
|
||||
library,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ pub struct QueueView {
|
||||
|
||||
impl QueueView {
|
||||
pub fn new(queue: Arc<Queue>, library: Arc<Library>) -> QueueView {
|
||||
let list = ListView::new(queue.queue.clone(), queue.clone());
|
||||
let list = ListView::new(queue.queue.clone(), queue.clone(), library.clone());
|
||||
|
||||
QueueView {
|
||||
list,
|
||||
|
||||
@@ -44,7 +44,12 @@ type SearchHandler<I> =
|
||||
pub const LIST_ID: &str = "search_list";
|
||||
pub const EDIT_ID: &str = "search_edit";
|
||||
impl SearchView {
|
||||
pub fn new(events: EventManager, spotify: Arc<Spotify>, queue: Arc<Queue>) -> SearchView {
|
||||
pub fn new(
|
||||
events: EventManager,
|
||||
spotify: Arc<Spotify>,
|
||||
queue: Arc<Queue>,
|
||||
library: Arc<Library>
|
||||
) -> SearchView {
|
||||
let results_tracks = Arc::new(RwLock::new(Vec::new()));
|
||||
let results_albums = Arc::new(RwLock::new(Vec::new()));
|
||||
let results_artists = Arc::new(RwLock::new(Vec::new()));
|
||||
@@ -61,13 +66,13 @@ impl SearchView {
|
||||
})
|
||||
.with_id(EDIT_ID);
|
||||
|
||||
let list_tracks = ListView::new(results_tracks.clone(), queue.clone());
|
||||
let list_tracks = ListView::new(results_tracks.clone(), queue.clone(), library.clone());
|
||||
let pagination_tracks = list_tracks.get_pagination().clone();
|
||||
let list_albums = ListView::new(results_albums.clone(), queue.clone());
|
||||
let list_albums = ListView::new(results_albums.clone(), queue.clone(), library.clone());
|
||||
let pagination_albums = list_albums.get_pagination().clone();
|
||||
let list_artists = ListView::new(results_artists.clone(), queue.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());
|
||||
let list_playlists = ListView::new(results_playlists.clone(), queue.clone(), library.clone());
|
||||
let pagination_playlists = list_playlists.get_pagination().clone();
|
||||
|
||||
let tabs = TabView::new()
|
||||
|
||||
Reference in New Issue
Block a user