From f84a03c703a8a9b88beb38214b352bc5970fe20f Mon Sep 17 00:00:00 2001 From: Drew Weymouth Date: Mon, 25 Sep 2023 16:38:02 -0700 Subject: [PATCH] Closes #249: add Rescan Library to settings menu --- backend/mediaprovider/mediaprovider.go | 2 ++ backend/mediaprovider/subsonic/subsonicmediaprovider.go | 5 +++++ ui/browsing/browsingpane.go | 5 +++++ ui/mainwindow.go | 2 ++ 4 files changed, 14 insertions(+) diff --git a/backend/mediaprovider/mediaprovider.go b/backend/mediaprovider/mediaprovider.go index 86a3880..8d59c05 100644 --- a/backend/mediaprovider/mediaprovider.go +++ b/backend/mediaprovider/mediaprovider.go @@ -90,4 +90,6 @@ type MediaProvider interface { Scrobble(trackID string, submission bool) error DownloadTrack(trackID string) (io.Reader, error) + + RescanLibrary() error } diff --git a/backend/mediaprovider/subsonic/subsonicmediaprovider.go b/backend/mediaprovider/subsonic/subsonicmediaprovider.go index 26993d4..a83eda7 100644 --- a/backend/mediaprovider/subsonic/subsonicmediaprovider.go +++ b/backend/mediaprovider/subsonic/subsonicmediaprovider.go @@ -267,6 +267,11 @@ func (s *subsonicMediaProvider) DownloadTrack(trackID string) (io.Reader, error) return s.client.Download(trackID) } +func (s *subsonicMediaProvider) RescanLibrary() error { + _, err := s.client.StartScan() + return err +} + func toTrack(ch *subsonic.Child) *mediaprovider.Track { if ch == nil { return nil diff --git a/ui/browsing/browsingpane.go b/ui/browsing/browsingpane.go index 9147ae8..7c33c0d 100644 --- a/ui/browsing/browsingpane.go +++ b/ui/browsing/browsingpane.go @@ -120,6 +120,11 @@ func (b *BrowsingPane) AddSettingsMenuItem(label string, action func()) { fyne.NewMenuItem(label, action)) } +func (b *BrowsingPane) AddSettingsMenuSeparator() { + b.settingsMenu.Items = append(b.settingsMenu.Items, + fyne.NewMenuItemSeparator()) +} + func (b *BrowsingPane) AddNavigationButton(icon fyne.Resource, action func()) { b.navBtnsContainer.Add(widget.NewButtonWithIcon("", icon, action)) } diff --git a/ui/mainwindow.go b/ui/mainwindow.go index 272b271..7eb8860 100644 --- a/ui/mainwindow.go +++ b/ui/mainwindow.go @@ -115,6 +115,8 @@ func NewMainWindow(fyneApp fyne.App, appName, displayAppName, appVersion string, }) m.BrowsingPane.AddSettingsMenuItem("Log Out", func() { app.ServerManager.Logout(true) }) m.BrowsingPane.AddSettingsMenuItem("Switch Servers", func() { app.ServerManager.Logout(false) }) + m.BrowsingPane.AddSettingsMenuItem("Rescan Library", func() { app.ServerManager.Server.RescanLibrary() }) + m.BrowsingPane.AddSettingsMenuSeparator() m.BrowsingPane.AddSettingsMenuItem("Check for Updates", func() { go func() { if t := app.UpdateChecker.CheckLatestVersionTag(); t != "" && t != app.VersionTag() {