Fix #579: Save play queue on all queue changes

This commit is contained in:
Drew Weymouth
2025-10-09 08:13:56 -07:00
parent 7b8af7b952
commit 887d3bb2c7
16 changed files with 22 additions and 15 deletions
+7
View File
@@ -188,6 +188,13 @@ func StartupApp(appName, displayAppName, appVersion, appVersionTag, latestReleas
SetSystemSleepDisabled(false) SetSystemSleepDisabled(false)
}) })
a.PlaybackManager.OnQueueChange(func() {
go a.SavePlayQueueIfEnabled()
})
a.PlaybackManager.OnSongChange(func(_ mediaprovider.MediaItem, _ *mediaprovider.Track) {
go a.SavePlayQueueIfEnabled()
})
// Start IPC server if another not already running in a different instance // Start IPC server if another not already running in a different instance
if cli == nil { if cli == nil {
ipc.DestroyConn() // cleanup socket possibly orphaned by crashed process ipc.DestroyConn() // cleanup socket possibly orphaned by crashed process
+1 -1
View File
@@ -154,7 +154,7 @@
"ReplayGain mode": "ReplayGain-Modus", "ReplayGain mode": "ReplayGain-Modus",
"ReplayGain preamp": "ReplayGain-Vorverstärker", "ReplayGain preamp": "ReplayGain-Vorverstärker",
"Restart required": "Neustart erforderlich", "Restart required": "Neustart erforderlich",
"Save play queue on exit": "Wiedergabeliste beim Verlassen speichern", "Save play queue": "Wiedergabeliste beim Verlassen speichern",
"Saved at": "Gespeichert am", "Saved at": "Gespeichert am",
"Scrobble when": "Scrobble wenn", "Scrobble when": "Scrobble wenn",
"Search Everywhere": "Überall suchen", "Search Everywhere": "Überall suchen",
+1 -1
View File
@@ -182,7 +182,7 @@
"ReplayGain preamp": "ReplayGain preamp", "ReplayGain preamp": "ReplayGain preamp",
"Restart required": "Restart required", "Restart required": "Restart required",
"Sample rate": "Sample rate", "Sample rate": "Sample rate",
"Save play queue on exit": "Save play queue on exit", "Save play queue": "Save play queue",
"Saved at": "Saved at", "Saved at": "Saved at",
"Scrobble when": "Scrobble when", "Scrobble when": "Scrobble when",
"Search": "Search", "Search": "Search",
+1 -1
View File
@@ -161,7 +161,7 @@
"ReplayGain mode": "Modo ReplayGain", "ReplayGain mode": "Modo ReplayGain",
"ReplayGain preamp": "Preamp ReplayGain", "ReplayGain preamp": "Preamp ReplayGain",
"Restart required": "Reinicio requerido", "Restart required": "Reinicio requerido",
"Save play queue on exit": "Guardar cola de reproducción al salir", "Save play queue": "Guardar cola de reproducción",
"Saved at": "Guardado en", "Saved at": "Guardado en",
"Scrobble when": "Scrobble cuando", "Scrobble when": "Scrobble cuando",
"Search Everywhere": "Buscar en todas partes", "Search Everywhere": "Buscar en todas partes",
+1 -1
View File
@@ -179,7 +179,7 @@
"ReplayGain preamp": "Préamp. ReplayGain", "ReplayGain preamp": "Préamp. ReplayGain",
"Restart required": "Redémarrage nécessaire", "Restart required": "Redémarrage nécessaire",
"Sample rate": "Taux d'échantillonnage", "Sample rate": "Taux d'échantillonnage",
"Save play queue on exit": "Sauvegarder la file d'attente en quittant", "Save play queue": "Sauvegarder la file d'attente",
"Saved at": "Sauvegardé sur", "Saved at": "Sauvegardé sur",
"Scrobble when": "Scrobbler quand", "Scrobble when": "Scrobbler quand",
"Search": "Recherche", "Search": "Recherche",
+1 -1
View File
@@ -153,7 +153,7 @@
"ReplayGain mode": "ReplayGain mode", "ReplayGain mode": "ReplayGain mode",
"ReplayGain preamp": "ReplayGain preamp.", "ReplayGain preamp": "ReplayGain preamp.",
"Restart required": "Riavvio richiesto", "Restart required": "Riavvio richiesto",
"Save play queue on exit": "Salva coda di ascolto all'uscita", "Save play queue": "Salva coda di ascolto",
"Saved at": "Salvato in", "Saved at": "Salvato in",
"Scrobble when": "Scrobbla quando", "Scrobble when": "Scrobbla quando",
"Search Everywhere": "Cerca ovunque", "Search Everywhere": "Cerca ovunque",
+1 -1
View File
@@ -174,7 +174,7 @@
"ReplayGain mode": "리플레이게인 모드", "ReplayGain mode": "리플레이게인 모드",
"ReplayGain preamp": "리플레이게인 프리앰프", "ReplayGain preamp": "리플레이게인 프리앰프",
"Restart required": "재시작 필요", "Restart required": "재시작 필요",
"Save play queue on exit": "종료 시 재생 대기열 저장", "Save play queuet": "종료 시 재생 대기열 저장",
"Saved at": "저장됨", "Saved at": "저장됨",
"Scrobble when": "스크로블할 시점", "Scrobble when": "스크로블할 시점",
"Search": "검색", "Search": "검색",
+1 -1
View File
@@ -168,7 +168,7 @@
"ReplayGain mode": "ReplayGain mode", "ReplayGain mode": "ReplayGain mode",
"ReplayGain preamp": "ReplayGain preamp", "ReplayGain preamp": "ReplayGain preamp",
"Restart required": "Herstart vereist", "Restart required": "Herstart vereist",
"Save play queue on exit": "Bewaar wachtrij bij afsluiten", "Save play queue": "Bewaar wachtrij bij afsluiten",
"Saved at": "Opgeslaan op", "Saved at": "Opgeslaan op",
"Scrobble when": "Scrobble als", "Scrobble when": "Scrobble als",
"Search": "Zoeken", "Search": "Zoeken",
+1 -1
View File
@@ -165,7 +165,7 @@
"ReplayGain mode": "ReplayGain mode", "ReplayGain mode": "ReplayGain mode",
"ReplayGain preamp": "ReplayGain preamp", "ReplayGain preamp": "ReplayGain preamp",
"Restart required": "Wymagany restart", "Restart required": "Wymagany restart",
"Save play queue on exit": "Zapisz kolejkę odtwarzania po zamknięciu", "Save play queue": "Zapisz kolejkę odtwarzania po zamknięciu",
"Saved at": "Zapisano w", "Saved at": "Zapisano w",
"Scrobble when": "Wyślij gdy", "Scrobble when": "Wyślij gdy",
"Search Everywhere": "Szukaj wszędzie", "Search Everywhere": "Szukaj wszędzie",
+1 -1
View File
@@ -171,7 +171,7 @@
"ReplayGain mode": "Modo do ReplayGain", "ReplayGain mode": "Modo do ReplayGain",
"ReplayGain preamp": "Pré-amp. do ReplayGain", "ReplayGain preamp": "Pré-amp. do ReplayGain",
"Restart required": "Requer reinício", "Restart required": "Requer reinício",
"Save play queue on exit": "Salvar fila de reprodução ao sair", "Save play queue": "Salvar fila de reprodução",
"Saved at": "Salvo em", "Saved at": "Salvo em",
"Scrobble when": "Fazer scrobble quando", "Scrobble when": "Fazer scrobble quando",
"Search Everywhere": "Pesquisar em todos os lugares", "Search Everywhere": "Pesquisar em todos os lugares",
+1 -1
View File
@@ -146,7 +146,7 @@
"ReplayGain mode": "Mod ReplayGain", "ReplayGain mode": "Mod ReplayGain",
"ReplayGain preamp": "Preamplificare ReplayGain", "ReplayGain preamp": "Preamplificare ReplayGain",
"Restart required": "Repornire necesară", "Restart required": "Repornire necesară",
"Save play queue on exit": "Salvează listă de redare la ieșire", "Save play queue": "Salvează listă de redare",
"Saved at": "Salvat la", "Saved at": "Salvat la",
"Scrobble when": "Scrobblare când", "Scrobble when": "Scrobblare când",
"Search Everywhere": "Caută peste tot", "Search Everywhere": "Caută peste tot",
+1 -1
View File
@@ -176,7 +176,7 @@
"ReplayGain mode": "Режим", "ReplayGain mode": "Режим",
"ReplayGain preamp": "Предусиление", "ReplayGain preamp": "Предусиление",
"Restart required": "Требуется перезапуск", "Restart required": "Требуется перезапуск",
"Save play queue on exit": "Сохранять очередь воспроизведения при выходе", "Save play queue": "Сохранять очередь воспроизведения при выходе",
"Saved at": "Сохранено в", "Saved at": "Сохранено в",
"Scrobble when": "Отправлять когда", "Scrobble when": "Отправлять когда",
"Search": "Искать", "Search": "Искать",
+1 -1
View File
@@ -174,7 +174,7 @@
"ReplayGain mode": "重播增益模式", "ReplayGain mode": "重播增益模式",
"ReplayGain preamp": "重播增益前置放大", "ReplayGain preamp": "重播增益前置放大",
"Restart required": "需要重启", "Restart required": "需要重启",
"Save play queue on exit": "退出时保存播放队列", "Save play queue": "退出时保存播放队列",
"Saved at": "保存于", "Saved at": "保存于",
"Scrobble when": "记录播放时", "Scrobble when": "记录播放时",
"Search": "搜索", "Search": "搜索",
+1 -1
View File
@@ -174,7 +174,7 @@
"ReplayGain mode": "重播增益模式", "ReplayGain mode": "重播增益模式",
"ReplayGain preamp": "重播增益前置放大", "ReplayGain preamp": "重播增益前置放大",
"Restart required": "需要重启", "Restart required": "需要重启",
"Save play queue on exit": "退出时保存播放队列", "Save play queue": "退出时保存播放队列",
"Saved at": "保存于", "Saved at": "保存于",
"Scrobble when": "记录播放时", "Scrobble when": "记录播放时",
"Search": "搜索", "Search": "搜索",
+1 -1
View File
@@ -146,7 +146,7 @@
"ReplayGain mode": "重播增益模式", "ReplayGain mode": "重播增益模式",
"ReplayGain preamp": "重播增益前置放大", "ReplayGain preamp": "重播增益前置放大",
"Restart required": "需要重新啟動", "Restart required": "需要重新啟動",
"Save play queue on exit": "退出時保存播放佇列", "Save play queue": "退出時保存播放佇列",
"Saved at": "保存於", "Saved at": "保存於",
"Scrobble when": "記錄播放時", "Scrobble when": "記錄播放時",
"Search Everywhere": "搜尋所有地方", "Search Everywhere": "搜尋所有地方",
+1 -1
View File
@@ -167,7 +167,7 @@ func (s *SettingsDialog) createGeneralTab(canSaveQueueToServer bool) *container.
if s.config.Application.SaveQueueToServer { if s.config.Application.SaveQueueToServer {
saveToServer.Selected = toServer saveToServer.Selected = toServer
} }
saveQueue := widget.NewCheck(lang.L("Save play queue on exit"), func(save bool) { saveQueue := widget.NewCheck(lang.L("Save play queue"), func(save bool) {
s.config.Application.SavePlayQueue = save s.config.Application.SavePlayQueue = save
if save && canSaveQueueToServer { if save && canSaveQueueToServer {
saveToServer.Enable() saveToServer.Enable()