diff --git a/ui/browsing/playlistspage.go b/ui/browsing/playlistspage.go index 394eac0..2418afc 100644 --- a/ui/browsing/playlistspage.go +++ b/ui/browsing/playlistspage.go @@ -113,6 +113,16 @@ func (a *PlaylistsPage) createGridView(playlists []*mediaprovider.Playlist) { a.contr.DoAddTracksToPlaylistWorkflow(sharedutil.TracksToIDs(pl.Tracks)) }() } + a.gridView.OnDownload = func(id string) { + go func() { + pl, err := a.contr.App.ServerManager.Server.GetPlaylist(id) + if err != nil { + log.Printf("error loading playlist: %s", err.Error()) + return + } + a.contr.ShowDownloadDialog(pl.Tracks) + }() + } } func (a *PlaylistsPage) showListView() { diff --git a/ui/controller/controller.go b/ui/controller/controller.go index c1874a6..951f7ca 100644 --- a/ui/controller/controller.go +++ b/ui/controller/controller.go @@ -144,12 +144,14 @@ func (m *Controller) ConnectAlbumGridActions(grid *widgets.GridView) { }() } grid.OnDownload = func(albumID string) { - album, err := m.App.ServerManager.Server.GetAlbum(albumID) - if err != nil { - log.Printf("error loading album: %s", err.Error()) - return - } - m.ShowDownloadDialog(album.Tracks) + go func() { + album, err := m.App.ServerManager.Server.GetAlbum(albumID) + if err != nil { + log.Printf("error loading album: %s", err.Error()) + return + } + m.ShowDownloadDialog(album.Tracks) + }() } } @@ -164,8 +166,10 @@ func (m *Controller) ConnectArtistGridActions(grid *widgets.GridView) { sharedutil.TracksToIDs(m.GetArtistTracks(artistID))) } grid.OnDownload = func(artistID string) { - tracks := m.GetArtistTracks(artistID) - m.ShowDownloadDialog(tracks) + go func() { + tracks := m.GetArtistTracks(artistID) + m.ShowDownloadDialog(tracks) + }() } }