From 887d3bb2c7b3955e77c1a73bc53dbabd3f58ad0d Mon Sep 17 00:00:00 2001 From: Drew Weymouth Date: Thu, 9 Oct 2025 08:13:56 -0700 Subject: [PATCH] Fix #579: Save play queue on all queue changes --- backend/app.go | 7 +++++++ res/translations/de.json | 2 +- res/translations/en.json | 2 +- res/translations/es.json | 2 +- res/translations/fr.json | 2 +- res/translations/it.json | 2 +- res/translations/ko.json | 2 +- res/translations/nl.json | 2 +- res/translations/pl.json | 2 +- res/translations/pt_BR.json | 2 +- res/translations/ro.json | 2 +- res/translations/ru.json | 2 +- res/translations/zh.json | 2 +- res/translations/zhHans.json | 2 +- res/translations/zhHant.json | 2 +- ui/dialogs/settingsdialog.go | 2 +- 16 files changed, 22 insertions(+), 15 deletions(-) diff --git a/backend/app.go b/backend/app.go index 274dc77..8a5bb2e 100644 --- a/backend/app.go +++ b/backend/app.go @@ -188,6 +188,13 @@ func StartupApp(appName, displayAppName, appVersion, appVersionTag, latestReleas 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 if cli == nil { ipc.DestroyConn() // cleanup socket possibly orphaned by crashed process diff --git a/res/translations/de.json b/res/translations/de.json index 56a074f..b9e0ba2 100644 --- a/res/translations/de.json +++ b/res/translations/de.json @@ -154,7 +154,7 @@ "ReplayGain mode": "ReplayGain-Modus", "ReplayGain preamp": "ReplayGain-Vorverstärker", "Restart required": "Neustart erforderlich", - "Save play queue on exit": "Wiedergabeliste beim Verlassen speichern", + "Save play queue": "Wiedergabeliste beim Verlassen speichern", "Saved at": "Gespeichert am", "Scrobble when": "Scrobble wenn", "Search Everywhere": "Überall suchen", diff --git a/res/translations/en.json b/res/translations/en.json index 0c27198..a3ded54 100644 --- a/res/translations/en.json +++ b/res/translations/en.json @@ -182,7 +182,7 @@ "ReplayGain preamp": "ReplayGain preamp", "Restart required": "Restart required", "Sample rate": "Sample rate", - "Save play queue on exit": "Save play queue on exit", + "Save play queue": "Save play queue", "Saved at": "Saved at", "Scrobble when": "Scrobble when", "Search": "Search", diff --git a/res/translations/es.json b/res/translations/es.json index 8f23ef0..187bcf3 100644 --- a/res/translations/es.json +++ b/res/translations/es.json @@ -161,7 +161,7 @@ "ReplayGain mode": "Modo ReplayGain", "ReplayGain preamp": "Preamp ReplayGain", "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", "Scrobble when": "Scrobble cuando", "Search Everywhere": "Buscar en todas partes", diff --git a/res/translations/fr.json b/res/translations/fr.json index 0df3a9f..b57c904 100644 --- a/res/translations/fr.json +++ b/res/translations/fr.json @@ -179,7 +179,7 @@ "ReplayGain preamp": "Préamp. ReplayGain", "Restart required": "Redémarrage nécessaire", "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", "Scrobble when": "Scrobbler quand", "Search": "Recherche", diff --git a/res/translations/it.json b/res/translations/it.json index a60ebce..e6583ca 100644 --- a/res/translations/it.json +++ b/res/translations/it.json @@ -153,7 +153,7 @@ "ReplayGain mode": "ReplayGain mode", "ReplayGain preamp": "ReplayGain preamp.", "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", "Scrobble when": "Scrobbla quando", "Search Everywhere": "Cerca ovunque", diff --git a/res/translations/ko.json b/res/translations/ko.json index 334987c..4043aa1 100644 --- a/res/translations/ko.json +++ b/res/translations/ko.json @@ -174,7 +174,7 @@ "ReplayGain mode": "리플레이게인 모드", "ReplayGain preamp": "리플레이게인 프리앰프", "Restart required": "재시작 필요", - "Save play queue on exit": "종료 시 재생 대기열 저장", + "Save play queuet": "종료 시 재생 대기열 저장", "Saved at": "저장됨", "Scrobble when": "스크로블할 시점", "Search": "검색", diff --git a/res/translations/nl.json b/res/translations/nl.json index 4a2dd65..20b2109 100644 --- a/res/translations/nl.json +++ b/res/translations/nl.json @@ -168,7 +168,7 @@ "ReplayGain mode": "ReplayGain mode", "ReplayGain preamp": "ReplayGain preamp", "Restart required": "Herstart vereist", - "Save play queue on exit": "Bewaar wachtrij bij afsluiten", + "Save play queue": "Bewaar wachtrij bij afsluiten", "Saved at": "Opgeslaan op", "Scrobble when": "Scrobble als", "Search": "Zoeken", diff --git a/res/translations/pl.json b/res/translations/pl.json index d533797..26b299a 100644 --- a/res/translations/pl.json +++ b/res/translations/pl.json @@ -165,7 +165,7 @@ "ReplayGain mode": "ReplayGain mode", "ReplayGain preamp": "ReplayGain preamp", "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", "Scrobble when": "Wyślij gdy", "Search Everywhere": "Szukaj wszędzie", diff --git a/res/translations/pt_BR.json b/res/translations/pt_BR.json index 8fbfae1..5247a52 100644 --- a/res/translations/pt_BR.json +++ b/res/translations/pt_BR.json @@ -171,7 +171,7 @@ "ReplayGain mode": "Modo do ReplayGain", "ReplayGain preamp": "Pré-amp. do ReplayGain", "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", "Scrobble when": "Fazer scrobble quando", "Search Everywhere": "Pesquisar em todos os lugares", diff --git a/res/translations/ro.json b/res/translations/ro.json index 484843b..7f0f1f3 100644 --- a/res/translations/ro.json +++ b/res/translations/ro.json @@ -146,7 +146,7 @@ "ReplayGain mode": "Mod ReplayGain", "ReplayGain preamp": "Preamplificare ReplayGain", "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", "Scrobble when": "Scrobblare când", "Search Everywhere": "Caută peste tot", diff --git a/res/translations/ru.json b/res/translations/ru.json index 2a242fa..21203f0 100644 --- a/res/translations/ru.json +++ b/res/translations/ru.json @@ -176,7 +176,7 @@ "ReplayGain mode": "Режим", "ReplayGain preamp": "Предусиление", "Restart required": "Требуется перезапуск", - "Save play queue on exit": "Сохранять очередь воспроизведения при выходе", + "Save play queue": "Сохранять очередь воспроизведения при выходе", "Saved at": "Сохранено в", "Scrobble when": "Отправлять когда", "Search": "Искать", diff --git a/res/translations/zh.json b/res/translations/zh.json index db8db72..3a51252 100644 --- a/res/translations/zh.json +++ b/res/translations/zh.json @@ -174,7 +174,7 @@ "ReplayGain mode": "重播增益模式", "ReplayGain preamp": "重播增益前置放大", "Restart required": "需要重启", - "Save play queue on exit": "退出时保存播放队列", + "Save play queue": "退出时保存播放队列", "Saved at": "保存于", "Scrobble when": "记录播放时", "Search": "搜索", diff --git a/res/translations/zhHans.json b/res/translations/zhHans.json index db8db72..3a51252 100644 --- a/res/translations/zhHans.json +++ b/res/translations/zhHans.json @@ -174,7 +174,7 @@ "ReplayGain mode": "重播增益模式", "ReplayGain preamp": "重播增益前置放大", "Restart required": "需要重启", - "Save play queue on exit": "退出时保存播放队列", + "Save play queue": "退出时保存播放队列", "Saved at": "保存于", "Scrobble when": "记录播放时", "Search": "搜索", diff --git a/res/translations/zhHant.json b/res/translations/zhHant.json index 8b0b7bf..ba70d9f 100644 --- a/res/translations/zhHant.json +++ b/res/translations/zhHant.json @@ -146,7 +146,7 @@ "ReplayGain mode": "重播增益模式", "ReplayGain preamp": "重播增益前置放大", "Restart required": "需要重新啟動", - "Save play queue on exit": "退出時保存播放佇列", + "Save play queue": "退出時保存播放佇列", "Saved at": "保存於", "Scrobble when": "記錄播放時", "Search Everywhere": "搜尋所有地方", diff --git a/ui/dialogs/settingsdialog.go b/ui/dialogs/settingsdialog.go index 43a2cf5..bd252e7 100644 --- a/ui/dialogs/settingsdialog.go +++ b/ui/dialogs/settingsdialog.go @@ -167,7 +167,7 @@ func (s *SettingsDialog) createGeneralTab(canSaveQueueToServer bool) *container. if s.config.Application.SaveQueueToServer { 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 if save && canSaveQueueToServer { saveToServer.Enable()