Fix #700: add Song Radio context menu item to play queue list

This commit is contained in:
Drew Weymouth
2026-02-20 20:02:28 -08:00
parent b40c154f7e
commit ce3ae4f15a
2 changed files with 10 additions and 11 deletions
+9 -6
View File
@@ -31,6 +31,12 @@ func NewTrackContextMenu(disablePlaybackMenu bool, auxItems []*fyne.MenuItem) *T
tcm := &TrackContextMenu{}
tcm.menu = fyne.NewMenu("")
tcm.songRadioMenuItem = fyne.NewMenuItem(lang.L("Play song radio"), func() {
if tcm.OnPlaySongRadio != nil {
tcm.OnPlaySongRadio()
}
})
tcm.songRadioMenuItem.Icon = myTheme.RadioIcon
if !disablePlaybackMenu {
play := fyne.NewMenuItem(lang.L("Play"), func() {
if tcm.OnPlay != nil {
@@ -56,12 +62,6 @@ func NewTrackContextMenu(disablePlaybackMenu bool, auxItems []*fyne.MenuItem) *T
}
})
add.Icon = theme.ContentAddIcon()
tcm.songRadioMenuItem = fyne.NewMenuItem(lang.L("Play song radio"), func() {
if tcm.OnPlaySongRadio != nil {
tcm.OnPlaySongRadio()
}
})
tcm.songRadioMenuItem.Icon = myTheme.RadioIcon
tcm.menu.Items = append(tcm.menu.Items,
play, shuffle, playNext, add, tcm.songRadioMenuItem)
}
@@ -104,6 +104,9 @@ func NewTrackContextMenu(disablePlaybackMenu bool, auxItems []*fyne.MenuItem) *T
})
tcm.shareMenuItem.Icon = myTheme.ShareIcon
tcm.menu.Items = append(tcm.menu.Items, tcm.shareMenuItem)
if disablePlaybackMenu {
tcm.menu.Items = append(tcm.menu.Items, tcm.songRadioMenuItem)
}
tcm.menu.Items = append(tcm.menu.Items, fyne.NewMenuItemSeparator())
tcm.menu.Items = append(tcm.menu.Items, favorite, unfavorite)
tcm.ratingSubmenu = NewRatingSubmenu(func(rating int) {
+1 -5
View File
@@ -41,10 +41,6 @@ type TracklistOptions struct {
// must be set before the context menu is shown for the first time
AuxiliaryMenuItems []*fyne.MenuItem
// DisablePlaybackMenu sets whether to disable playback options in
// the tracklist context menu.
DisablePlaybackMenu bool
// Disables sorting the tracklist by clicking individual columns.
DisableSorting bool
@@ -518,7 +514,7 @@ func (t *Tracklist) onShowContextMenu(e *fyne.PointEvent, trackIdx int) {
t.list.Refresh()
}
if t.ctxMenu == nil {
t.ctxMenu = util.NewTrackContextMenu(t.Options.DisablePlaybackMenu, t.Options.AuxiliaryMenuItems)
t.ctxMenu = util.NewTrackContextMenu(false, t.Options.AuxiliaryMenuItems)
t.ctxMenu.OnPlay = func(shuffle bool) {
t.OnPlaySelection(t.SelectedTracks(), shuffle)
}