Closes #249: add Rescan Library to settings menu
This commit is contained in:
@@ -90,4 +90,6 @@ type MediaProvider interface {
|
||||
Scrobble(trackID string, submission bool) error
|
||||
|
||||
DownloadTrack(trackID string) (io.Reader, error)
|
||||
|
||||
RescanLibrary() error
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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))
|
||||
}
|
||||
|
||||
@@ -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() {
|
||||
|
||||
Reference in New Issue
Block a user