refactor: add controller.ConnectTracklistActions

This commit is contained in:
Drew Weymouth
2023-02-21 18:10:10 -08:00
parent fd07c18fa9
commit 3de51ad48a
4 changed files with 24 additions and 39 deletions
+2 -14
View File
@@ -66,14 +66,7 @@ func NewAlbumPage(
a.header = NewAlbumPageHeader(a)
a.tracklist = widgets.NewTracklist(nil)
a.tracklist.SetVisibleColumns(a.cfg.TracklistColumns)
// connect tracklist actions
a.tracklist.OnPlayTrackAt = a.onPlayTrackAt
a.tracklist.OnAddToQueue = func(tracks []*subsonic.Child) { a.pm.LoadTracks(tracks, true, false) }
a.tracklist.OnPlaySelection = func(tracks []*subsonic.Child) {
a.pm.LoadTracks(tracks, false, false)
a.pm.PlayFromBeginning()
}
a.tracklist.OnAddToPlaylist = a.contr.DoAddTracksToPlaylistWorkflow
a.contr.ConnectTracklistActions(a.tracklist)
a.container = container.NewBorder(
container.New(&layouts.MaxPadLayout{PadLeft: 15, PadRight: 15, PadTop: 15, PadBottom: 10}, a.header),
@@ -122,11 +115,6 @@ func (a *AlbumPage) SelectAll() {
a.tracklist.SelectAll()
}
func (a *AlbumPage) onPlayTrackAt(tracknum int) {
a.pm.LoadTracks(a.tracklist.Tracks, false, false)
a.pm.PlayTrackAt(tracknum)
}
// should be called asynchronously
func (a *AlbumPage) load() {
album, err := a.lm.GetAlbum(a.albumID)
@@ -185,7 +173,7 @@ func NewAlbumPageHeader(page *AlbumPage) *AlbumPageHeader {
}
a.miscLabel = widget.NewLabel("")
playButton := widget.NewButtonWithIcon("Play", theme.MediaPlayIcon(), func() {
page.onPlayTrackAt(0)
go page.pm.PlayAlbum(page.albumID, 0)
})
shuffleBtn := widget.NewButtonWithIcon(" Shuffle", res.ResShuffleInvertSvg, func() {
page.pm.LoadTracks(page.tracklist.Tracks, false, true)