WIP: feat: add "Play next" MenuItem

This commit is contained in:
Tanguy Rossel
2024-04-04 08:39:14 +02:00
parent 914636e91f
commit 63bdfb5f87
9 changed files with 81 additions and 41 deletions
+17 -10
View File
@@ -84,15 +84,16 @@ type Tracklist struct {
Options TracklistOptions
// user action callbacks
OnPlayTrackAt func(int)
OnPlaySelection func(tracks []*mediaprovider.Track, shuffle bool)
OnAddToQueue func(trackIDs []*mediaprovider.Track)
OnAddToPlaylist func(trackIDs []string)
OnSetFavorite func(trackIDs []string, fav bool)
OnSetRating func(trackIDs []string, rating int)
OnDownload func(tracks []*mediaprovider.Track, downloadName string)
OnShare func(trackID string)
OnPlaySongRadio func(track *mediaprovider.Track)
OnPlayTrackAt func(int)
OnPlaySelection func(tracks []*mediaprovider.Track, shuffle bool)
OnPlaySelectionNext func(trackIDs []*mediaprovider.Track)
OnAddToQueue func(trackIDs []*mediaprovider.Track)
OnAddToPlaylist func(trackIDs []string)
OnSetFavorite func(trackIDs []string, fav bool)
OnSetRating func(trackIDs []string, rating int)
OnDownload func(tracks []*mediaprovider.Track, downloadName string)
OnShare func(trackID string)
OnPlaySongRadio func(track *mediaprovider.Track)
OnShowArtistPage func(artistID string)
OnShowAlbumPage func(albumID string)
@@ -535,6 +536,12 @@ func (t *Tracklist) onShowContextMenu(e *fyne.PointEvent, trackIdx int) {
}
})
shuffle.Icon = myTheme.ShuffleIcon
play_next := fyne.NewMenuItem("Play next", func() {
if t.OnPlaySelection != nil {
t.OnPlaySelectionNext(t.selectedTracks())
}
})
play_next.Icon = theme.ContentAddIcon()
add := fyne.NewMenuItem("Add to queue", func() {
if t.OnPlaySelection != nil {
t.OnAddToQueue(t.selectedTracks())
@@ -546,7 +553,7 @@ func (t *Tracklist) onShowContextMenu(e *fyne.PointEvent, trackIdx int) {
})
t.songRadioMenuItem.Icon = myTheme.BroadcastIcon
t.ctxMenu.Items = append(t.ctxMenu.Items,
play, shuffle, add, t.songRadioMenuItem)
play, shuffle, play_next, add, t.songRadioMenuItem)
}
playlist := fyne.NewMenuItem("Add to playlist...", func() {
if t.OnAddToPlaylist != nil {