add to playlist works

This commit is contained in:
Drew Weymouth
2023-02-09 20:57:42 -08:00
parent c66c43ecc8
commit 12cc315e12
8 changed files with 56 additions and 24 deletions
+15 -2
View File
@@ -117,7 +117,7 @@ type Tracklist struct {
OnPlayTrackAt func(int)
OnPlaySelection func(tracks []*subsonic.Child)
OnAddToQueue func(trackIDs []*subsonic.Child)
OnAddToPlaylist func(trackIDs []*subsonic.Child)
OnAddToPlaylist func(trackIDs []string)
selectionMgr util.ListSelectionManager
nowPlayingIdx int
@@ -213,7 +213,11 @@ func (t *Tracklist) onShowContextMenu(e *fyne.PointEvent, trackIdx int) {
t.OnAddToQueue(t.selectedTracks())
}
}),
//fyne.NewMenuItem("Add to playlist...", func() {}),
fyne.NewMenuItem("Add to playlist...", func() {
if t.OnAddToPlaylist != nil {
t.OnAddToPlaylist(t.selectedTrackIDs())
}
}),
)
}
widget.ShowPopUpMenuAtPosition(t.ctxMenu, fyne.CurrentApp().Driver().CanvasForObject(t), e.AbsolutePosition)
@@ -227,3 +231,12 @@ func (t *Tracklist) selectedTracks() []*subsonic.Child {
}
return tracks
}
func (t *Tracklist) selectedTrackIDs() []string {
sel := t.selectionMgr.GetSelection()
tracks := make([]string, 0, len(sel))
for _, idx := range sel {
tracks = append(tracks, t.Tracks[idx].ID)
}
return tracks
}