renumber correctly after removing tracks from playlist
This commit is contained in:
@@ -132,12 +132,7 @@ func (a *PlaylistPage) load() {
|
|||||||
log.Printf("Failed to get playlist: %s", err.Error())
|
log.Printf("Failed to get playlist: %s", err.Error())
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
// Playlists, like albums, have a sequential running order. We want the number column to
|
renumberTracks(playlist.Tracks)
|
||||||
// represent the track's original position in the playlist, if the user applies a sort.
|
|
||||||
// Re-purpose the TrackNumber field for the track's position in the playlist, rather than its parent album.
|
|
||||||
for i, tr := range playlist.Tracks {
|
|
||||||
tr.TrackNumber = i + 1
|
|
||||||
}
|
|
||||||
a.tracks = playlist.Tracks
|
a.tracks = playlist.Tracks
|
||||||
a.tracklist.SetTracks(playlist.Tracks)
|
a.tracklist.SetTracks(playlist.Tracks)
|
||||||
a.tracklist.SetNowPlaying(a.nowPlayingID)
|
a.tracklist.SetNowPlaying(a.nowPlayingID)
|
||||||
@@ -145,6 +140,15 @@ func (a *PlaylistPage) load() {
|
|||||||
a.header.Update(playlist)
|
a.header.Update(playlist)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func renumberTracks(tracks []*mediaprovider.Track) {
|
||||||
|
// Playlists, like albums, have a sequential running order. We want the number column to
|
||||||
|
// represent the track's original position in the playlist, if the user applies a sort.
|
||||||
|
// Re-purpose the TrackNumber field for the track's position in the playlist, rather than its parent album.
|
||||||
|
for i, tr := range tracks {
|
||||||
|
tr.TrackNumber = i + 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func (a *PlaylistPage) onMoveSelectedToTop() {
|
func (a *PlaylistPage) onMoveSelectedToTop() {
|
||||||
a.doSetNewTrackOrder(sharedutil.MoveToTop)
|
a.doSetNewTrackOrder(sharedutil.MoveToTop)
|
||||||
}
|
}
|
||||||
@@ -177,6 +181,7 @@ func (a *PlaylistPage) doSetNewTrackOrder(op sharedutil.TrackReorderOp) {
|
|||||||
if err := a.sm.Server.ReplacePlaylistTracks(a.playlistID, ids); err != nil {
|
if err := a.sm.Server.ReplacePlaylistTracks(a.playlistID, ids); err != nil {
|
||||||
log.Printf("error updating playlist: %s", err.Error())
|
log.Printf("error updating playlist: %s", err.Error())
|
||||||
} else {
|
} else {
|
||||||
|
renumberTracks(newTracks)
|
||||||
// force-switch back to unsorted view to show new track order
|
// force-switch back to unsorted view to show new track order
|
||||||
a.tracklist.SetSorting(widgets.TracklistSort{})
|
a.tracklist.SetSorting(widgets.TracklistSort{})
|
||||||
a.tracklist.SetTracks(newTracks)
|
a.tracklist.SetTracks(newTracks)
|
||||||
|
|||||||
Reference in New Issue
Block a user