Fix #136: add context menu to album and playlist grid views

This commit is contained in:
Drew Weymouth
2023-05-02 17:50:35 -07:00
parent 118b19aa13
commit 76657b5c1c
10 changed files with 122 additions and 97 deletions
+24
View File
@@ -7,6 +7,7 @@ import (
"strconv"
"supersonic/backend"
"supersonic/player"
"supersonic/sharedutil"
"supersonic/ui/dialogs"
"supersonic/ui/util"
"supersonic/ui/widgets"
@@ -125,6 +126,29 @@ func (m *Controller) ConnectTracklistActions(tracklist *widgets.Tracklist) {
}
}
func (m *Controller) ConnectAlbumGridActions(grid *widgets.GridView) {
grid.OnAddToQueue = func(albumID string) {
m.App.PlaybackManager.LoadAlbum(albumID, true, false)
}
grid.OnPlay = func(albumID string, shuffle bool) {
m.App.PlaybackManager.PlayAlbum(albumID, 0, shuffle)
}
grid.OnShowItemPage = func(albumID string) {
m.NavigateTo(AlbumRoute(albumID))
}
grid.OnShowSecondaryPage = func(artistID string) {
m.NavigateTo(ArtistRoute(artistID))
}
grid.OnAddToPlaylist = func(albumID string) {
album, err := m.App.ServerManager.Server.GetAlbum(albumID)
if err != nil {
log.Printf("error loading album: %s", err.Error())
return
}
m.DoAddTracksToPlaylistWorkflow(sharedutil.TracksToIDs(album.Song))
}
}
func (m *Controller) PromptForFirstServer() {
d := dialogs.NewAddEditServerDialog("Connect to Server", nil)
pop := widget.NewModalPopUp(d, m.MainWindow.Canvas())