Skip to content

Commit

Permalink
save settings when window closing to avoid losing some settings on cr…
Browse files Browse the repository at this point in the history
…ash-exits
  • Loading branch information
dweymouth committed Aug 20, 2024
1 parent 389c94e commit 62803b9
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 3 deletions.
6 changes: 4 additions & 2 deletions backend/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -336,16 +336,18 @@ func (a *App) DeleteServerCacheDir(serverID uuid.UUID) error {
}

func (a *App) Shutdown() {
a.Config.LocalPlayback.Volume = a.LocalPlayer.GetVolume()
a.SavePlayQueueIfEnabled()
a.SaveConfigFile()

if a.ipcServer != nil {
a.ipcServer.Shutdown(a.bgrndCtx)
}
a.MPRISHandler.Shutdown()
a.PlaybackManager.DisableCallbacks()
a.PlaybackManager.Stop() // will trigger scrobble check
a.Config.LocalPlayback.Volume = a.LocalPlayer.GetVolume()
a.cancel()
a.LocalPlayer.Destroy()
a.Config.WriteConfigFile(a.configFilePath())
}

func (a *App) SavePlayQueueIfEnabled() {
Expand Down
8 changes: 7 additions & 1 deletion ui/mainwindow.go
Original file line number Diff line number Diff line change
Expand Up @@ -140,8 +140,14 @@ func NewMainWindow(fyneApp fyne.App, appName, displayAppName, appVersion string,
m.Window.SetContent(fynetooltip.AddWindowToolTipLayer(m.container, m.Window.Canvas()))
m.setInitialSize()
m.Window.SetCloseIntercept(func() {
app.SavePlayQueueIfEnabled()
m.SaveWindowSize()
// save settings in case we crash during shutdown
// TODO: when all shutdowns exit cleanly, remove these lines
// as they are already executed in app.Shutdown()
app.Config.LocalPlayback.Volume = app.LocalPlayer.GetVolume()
app.SavePlayQueueIfEnabled()
app.SaveConfigFile()

if app.Config.Application.CloseToSystemTray && m.HaveSystemTray() {
m.Window.Hide()
} else {
Expand Down

0 comments on commit 62803b9

Please sign in to comment.