Skip to content

Commit

Permalink
Deduplicate code and fix a few clippy complaints (#549)
Browse files Browse the repository at this point in the history
  • Loading branch information
itsjunetime authored Oct 24, 2024
1 parent e5735d1 commit bb143b6
Show file tree
Hide file tree
Showing 6 changed files with 82 additions and 177 deletions.
9 changes: 2 additions & 7 deletions psst-gui/src/ui/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -474,17 +474,12 @@ fn route_icon_widget() -> impl Widget<Nav> {
|nav: &Nav, _, _| {
let icon = |icon: &SvgIcon| icon.scale(theme::ICON_SIZE_MEDIUM);
match &nav {
Nav::Home => Empty.boxed(),
Nav::Lyrics => Empty.boxed(),
Nav::SavedTracks => Empty.boxed(),
Nav::SavedAlbums => Empty.boxed(),
Nav::SavedShows => Empty.boxed(),
Nav::SearchResults(_) => icon(&icons::SEARCH).boxed(),
Nav::Home | Nav::Lyrics | Nav::SavedTracks | Nav::SavedAlbums | Nav::SavedShows => Empty.boxed(),
Nav::SearchResults(_) | Nav::Recommendations(_) => icon(&icons::SEARCH).boxed(),
Nav::AlbumDetail(_) => icon(&icons::ALBUM).boxed(),
Nav::ArtistDetail(_) => icon(&icons::ARTIST).boxed(),
Nav::PlaylistDetail(_) => icon(&icons::PLAYLIST).boxed(),
Nav::ShowDetail(_) => icon(&icons::PODCAST).boxed(),
Nav::Recommendations(_) => icon(&icons::SEARCH).boxed(),
}
},
)
Expand Down
39 changes: 18 additions & 21 deletions psst-gui/src/ui/playlist.rs
Original file line number Diff line number Diff line change
Expand Up @@ -437,57 +437,54 @@ pub fn detail_widget() -> impl Widget<AppState> {
},
|_, data, d| data.playlist_detail.tracks.defer(d.0),
|_, data, (d, r)| {
let r = r.map(|tracks| PlaylistTracks {
let tracks = PlaylistTracks {
id: d.0.id.clone(),
name: d.0.name.clone(),
tracks,
});
data.playlist_detail.tracks.update((d.0, r))
tracks: r,
};
data.playlist_detail.tracks.update((d.0, Ok(tracks)))
},
)
}

fn sort_playlist(
data: &AppState,
result: Result<Vector<Arc<Track>>, Error>,
) -> Result<Vector<Arc<Track>>, Error> {
) -> Vector<Arc<Track>> {
let sort_criteria = data.config.sort_criteria;
let sort_order = data.config.sort_order;

let playlist = result.unwrap_or_else(|_| Vector::new());

let mut sorted_playlist: Vector<Arc<Track>> = playlist
let sorted_playlist: Vector<Arc<Track>> = playlist
.into_iter()
.sorted_by(|a, b| {
let mut method = match sort_criteria {
let method = match sort_criteria {
SortCriteria::Title => a.name.cmp(&b.name),
SortCriteria::Artist => a.artist_name().cmp(&b.artist_name()),
SortCriteria::Album => a.album_name().cmp(&b.album_name()),
SortCriteria::Duration => a.duration.cmp(&b.duration),
_ => Ordering::Equal,
SortCriteria::DateAdded => Ordering::Equal,
};
method = if sort_order == SortOrder::Descending {

if sort_order == SortOrder::Descending {
method.reverse()
} else {
method
};
method
}
})
.collect();

sorted_playlist =
if sort_criteria == SortCriteria::DateAdded && sort_order == SortOrder::Descending {
sorted_playlist.into_iter().rev().collect()
} else {
sorted_playlist
};

Ok(sorted_playlist)
if sort_criteria == SortCriteria::DateAdded && sort_order == SortOrder::Descending {
sorted_playlist.into_iter().rev().collect()
} else {
sorted_playlist
}
}

fn playlist_menu_ctx(playlist: &WithCtx<Playlist>) -> Menu<AppState> {
let library = &playlist.ctx.to_owned().library;
let playlist = &playlist.to_owned().data;
let library = &playlist.ctx.library;
let playlist = &playlist.data;

let mut menu = Menu::empty();

Expand Down
2 changes: 1 addition & 1 deletion psst-gui/src/ui/preferences.rs
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ pub fn preferences_widget() -> impl Widget<AppState> {
ctx.submit_command(PROPAGATE_FLAGS);
}
})
.on_command(PROPAGATE_FLAGS, |_, _, data| {
.on_command(PROPAGATE_FLAGS, |_, (), data| {
data.common_ctx_mut().show_track_cover = data.config.show_track_cover;
})
.scroll()
Expand Down
Loading

0 comments on commit bb143b6

Please sign in to comment.