more places to disable ratings for Jellyfin

This commit is contained in:
Drew Weymouth
2023-11-14 09:05:02 -08:00
parent 80a3104e79
commit 80f1fb9f46
3 changed files with 18 additions and 10 deletions
+2
View File
@@ -94,6 +94,8 @@ func NewMainWindow(fyneApp fyne.App, appName, displayAppName, appVersion string,
app.ServerManager.OnServerConnected(func() {
m.BrowsingPane.EnableNavigationButtons()
m.Router.NavigateTo(m.StartupPage())
_, canRate := m.App.ServerManager.Server.(mediaprovider.SupportsRating)
m.BottomPanel.NowPlaying.DisableRating = !canRate
// check if launching new version, else if found available update on startup
if l := app.Config.Application.LastLaunchedVersion; app.VersionTag() != l {
if !app.IsFirstLaunch() {
+6 -2
View File
@@ -17,11 +17,14 @@ import (
type NowPlayingCard struct {
widget.BaseWidget
DisableRating bool
trackName *widget.Hyperlink
artistName *MultiHyperlink
albumName *widget.Hyperlink
cover *TappableImage
menu *widget.PopUpMenu
ratingMenu *fyne.MenuItem
OnTrackNameTapped func()
OnArtistNameTapped func(artistID string)
@@ -125,13 +128,14 @@ func (n *NowPlayingCard) Update(track string, artists, artistIDs []string, album
func (n *NowPlayingCard) showMenu(e *fyne.PointEvent) {
if n.menu == nil {
ratingMenu := util.NewRatingSubmenu(n.onSetRating)
n.ratingMenu = util.NewRatingSubmenu(n.onSetRating)
m := fyne.NewMenu("",
fyne.NewMenuItem("Set favorite", func() { n.onSetFavorite(true) }),
fyne.NewMenuItem("Unset favorite", func() { n.onSetFavorite(false) }),
ratingMenu,
n.ratingMenu,
fyne.NewMenuItem("Add to playlist...", func() { n.onAddToPlaylist() }))
n.menu = widget.NewPopUpMenu(m, fyne.CurrentApp().Driver().CanvasForObject(n))
}
n.ratingMenu.Disabled = n.DisableRating
n.menu.ShowAtPosition(e.AbsolutePosition)
}
+4 -2
View File
@@ -104,6 +104,7 @@ type Tracklist struct {
hdr *ListHeader
list *DisabledList
ctxMenu *fyne.Menu
ratingSubmenu *fyne.MenuItem
container *fyne.Container
}
@@ -565,15 +566,16 @@ func (t *Tracklist) onShowContextMenu(e *fyne.PointEvent, trackIdx int) {
fyne.NewMenuItem("Unset favorite", func() {
t.onSetFavorites(t.selectedTracks(), false, true)
}))
ratingMenu := util.NewRatingSubmenu(func(rating int) {
t.ratingSubmenu = util.NewRatingSubmenu(func(rating int) {
t.onSetRatings(t.selectedTracks(), rating, true)
})
t.ctxMenu.Items = append(t.ctxMenu.Items, ratingMenu)
t.ctxMenu.Items = append(t.ctxMenu.Items, t.ratingSubmenu)
if len(t.Options.AuxiliaryMenuItems) > 0 {
t.ctxMenu.Items = append(t.ctxMenu.Items, fyne.NewMenuItemSeparator())
t.ctxMenu.Items = append(t.ctxMenu.Items, t.Options.AuxiliaryMenuItems...)
}
}
t.ratingSubmenu.Disabled = t.Options.DisableRating
widget.ShowPopUpMenuAtPosition(t.ctxMenu, fyne.CurrentApp().Driver().CanvasForObject(t), e.AbsolutePosition)
}