Commit Graph
2145 Commits
Author SHA1 Message Date
Drew Weymouth 8fa6113969 fix syntax in go-version in workflow yml 2026-04-05 08:37:53 -07:00
Drew Weymouth 19f3180320 use latest go in CI builds 2026-04-05 08:36:50 -07:00
Drew Weymouth 058156abe7 Fix #888: use correct threading model for creating share URLs 2026-04-05 08:28:48 -07:00
Drew Weymouth dcee51eb4a Merge pull request #878 from dweymouth/mac-dock-reopen
Handle click on dock icon to reopen app for Mac
2026-03-30 19:03:47 -07:00
Drew WeymouthandClaude Sonnet 4.6 40781f668a Hide window on Cmd+W for macOS (close-window-to-hide behavior)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-30 18:24:58 -07:00
Drew WeymouthandClaude Sonnet 4.6 d43e0c126b Fix macOS quit: intercept applicationShouldTerminate: to allow real exit
GLFW's applicationShouldTerminate: converts all quit paths (Cmd+Q, dock,
menu bar) into window close requests and returns NSTerminateCancel, so our
close-to-hide intercept was hiding the window instead of letting the app exit.

Fix by implementing applicationShouldTerminate: in ReopenDelegate, setting a
darwinQuitting flag before forwarding to GLFW's delegate. The close intercept
checks this flag and calls Window.Close() instead of Hide() when quitting.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-30 17:57:20 -07:00
Coffeeicus bb37bee16c Add translation support with tr.json and update translations.go (#887)
* Update translations.go

* Create tr.json
2026-03-25 08:34:16 -07:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> 65505b7d33 Bump github.com/zalando/go-keyring from 0.2.6 to 0.2.8 (#886)
Bumps [github.com/zalando/go-keyring](https://github.com/zalando/go-keyring) from 0.2.6 to 0.2.8.
- [Release notes](https://github.com/zalando/go-keyring/releases)
- [Commits](https://github.com/zalando/go-keyring/compare/v0.2.6...v0.2.8)

---
updated-dependencies:
- dependency-name: github.com/zalando/go-keyring
  dependency-version: 0.2.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-23 10:11:10 -07:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> 0a7b7c6411 Bump actions/download-artifact from 4 to 8 (#879)
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 4 to 8.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v4...v8)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-version: '8'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-23 08:25:04 -07:00
Drew WeymouthandClaude Sonnet 4.6 fa00c6c7a1 Fix #881: discography sort button regression on Artist page (#882)
The early return added in 13cb672 did not account for the reSort flag,
causing the sort button to have no effect when already viewing the
discography tab. Also extend the early-return guard to cover the
groupedReleases case for consistency.

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-17 08:36:38 -07:00
Drew Weymouth 9a30559343 handle click dock icon to reopen app for Mac 2026-03-14 19:38:41 -07:00
Drew Weymouth e23dfb8554 Fix #875: ensure shuffle button on album/playlist/etc pages works regardless of queue shuffle 2026-03-13 07:59:09 -07:00
Drew Weymouth 9885b1c1ba prepare for 0.21.0 release 2026-03-11 17:02:31 -07:00
Drew Weymouth 03fd760589 use JSON instead of XML in Subsonic API 2026-03-11 07:38:58 -07:00
Drew Weymouth 97df8f1f4b use raw.githubusercontent url for icon 2026-03-10 19:03:21 -07:00
Drew Weymouth 5f02203803 use old fyne tool for release too 2026-03-10 18:52:33 -07:00
Drew Weymouth d2b1a134a9 Merge pull request #871 from dweymouth/feat/consolidated-ci-release-workflows
Consolidate workflows into CI and release; add draft release on tag push
2026-03-10 18:49:05 -07:00
Drew Weymouth 6dc518a6ed roll back to old fyne tool 2026-03-10 18:34:38 -07:00
Drew WeymouthandClaude Sonnet 4.6 ade47f3e72 Consolidate workflows into CI and release; add draft release on tag push
Replaces 7 separate workflow files with ci.yml (lint + all platform builds
on push to main and PRs) and release.yml (same builds + draft GitHub release
creation triggered by v* tags). Also fixes Ubuntu artifact name collision and
gives all output files descriptive names.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-05 15:57:38 -08:00
Drew WeymouthandClaude Sonnet 4.6 577cdcf97a Bump mpv dll to 20260301-git-05fac7f
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-05 07:20:02 -08:00
Drew Weymouth a4dc148eb1 Merge pull request #867 from dweymouth/fix/no-playback-on-restore
Prevent scrobbling and short playback artifacts when loading the app with previous track paused
2026-03-05 07:06:40 -08:00
Drew Weymouth 02e12b3cbe handle switch players while in pendingLoadPaused state 2026-03-05 06:59:28 -08:00
Drew Weymouth cfcd7a52e4 delete accidental committed file 2026-03-05 06:54:51 -08:00
Drew Weymouth c3b9763724 handle stop properly when pendingLoadPaused 2026-03-05 06:42:22 -08:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> 5030f3d2b8 Bump actions/upload-artifact from 6 to 7 (#868)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 6 to 7.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-04 07:00:54 -08:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> e487766ce7 Bump github.com/boxes-ltd/imaging from 1.7.4 to 1.7.5 (#870)
Bumps [github.com/boxes-ltd/imaging](https://github.com/boxes-ltd/imaging) from 1.7.4 to 1.7.5.
- [Release notes](https://github.com/boxes-ltd/imaging/releases)
- [Commits](https://github.com/boxes-ltd/imaging/compare/v1.7.4...v1.7.5)

---
updated-dependencies:
- dependency-name: github.com/boxes-ltd/imaging
  dependency-version: 1.7.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-02 11:23:56 -08:00
Drew Weymouth afb1c6c397 defensive nil checks around CanvasForObject 2026-03-01 08:24:16 -08:00
Drew Weymouth 12b5d33bbe Fix #866: remove race condition around context cancel func 2026-03-01 07:41:32 -08:00
Drew Weymouth 47668bcec9 stop waveform from refreshing when unpausing the initial track 2026-02-27 08:29:57 -08:00
Masterlocker cfd86b7a1f Update pl.json (Polish language) (#865)
* Update pl.json (Polish language)

* Update pl.json
2026-02-26 07:24:55 -08:00
Drew Weymouth 6782e8d470 make sure waveform shows up for track loaded paused when starting app 2026-02-21 10:17:20 -08:00
Drew WeymouthandClaude Sonnet 4.6 dba540861f fix: defer MPV playback start until user unpauses on session restore
Instead of play → pause → sleep → seek when restoring a paused session,
introduce loadTrackPaused which sets internal state and fires UI/OS
callbacks (song change, paused) without touching MPV. On Continue(),
detect pendingLoadPaused and start MPV playback from the saved position.

Also triggers waveform pre-generation for the paused track via the
onBeforeSongChange hook.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-21 09:40:59 -08:00
Drew Weymouth ce3ae4f15a Fix #700: add Song Radio context menu item to play queue list 2026-02-20 20:02:28 -08:00
Drew WeymouthandClaude Sonnet 4.6 b40c154f7e move shuffle and repeat controls into main player controls (#862)
Shuffle moves to the far left of the transport buttons and repeat to the far right, flanking prev/play/next. Both use a new IconButtonSizeSmallest (10% smaller than IconButtonSizeSmaller) with 2dp spacing separating them from the adjacent transport buttons. Wiring updated in bottompanel.go accordingly.

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-20 18:53:02 -08:00
Drew Weymouth e31f546e09 Merge pull request #815 from Tim-Kaiser/feature/shuffle
Shuffle play queue
2026-02-20 18:17:55 -08:00
Drew Weymouth c462720424 fix bug where unshuffling while playing last track in linear queue order crashes at end of track 2026-02-20 18:11:17 -08:00
Drew Weymouth 68268c323b fix order of operations when toggling shuffle 2026-02-20 17:46:37 -08:00
Siiiiinth 294be9a0a3 fix track restarting on shuffle 2026-02-20 16:16:52 +01:00
Siiiiinth 91701902e6 fixed playTrackAt when double clicking track 2026-02-20 15:57:54 +01:00
Siiiiinth 194e15cff6 Merge branch 'main' into feature/shuffle 2026-02-20 15:18:22 +01:00
Drew Weymouth 6b382c6293 Fix #857: Clear in-memory cache as well as on disk 2026-02-19 08:27:32 -08:00
Drew WeymouthandClaude Sonnet 4.6 9dd606ce73 Normalize server URLs before connecting (#861)
* Fix #304: normalize server URLs before connecting

Prepend http:// when no scheme is present and strip trailing slashes
for all server types. For Jellyfin, additionally strip /web/index.html
and /web path suffixes that users copy from the browser URL bar.

Normalization is applied in ServerManager.connect() on the by-value
parameter, so stored config is never mutated.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* move url normalize funcs

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-17 19:34:47 -08:00
Drew WeymouthandClaude Sonnet 4.6 e21908cd24 Add -reload-theme CLI flag to re-apply the current theme file (#860)
* Add -reload-theme CLI flag to re-apply theme via IPC

Sends a reload-theme IPC message to a running instance, causing it to
call fyne.CurrentApp().Settings().SetTheme(m.theme). Follows the same
callback pattern as -show (OnReactivate) and quit (OnExit).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* actually re-read theme file

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-17 16:56:51 -08:00
Siiiiinth 279bc997aa removed unnecessary guard 2026-02-15 21:14:30 +01:00
Siiiiinth f7c33da085 reorderItems returns a copy now 2026-02-15 21:06:59 +01:00
Siiiiinth dccd2d8f1a clarify loadItems functionality 2026-02-15 20:54:14 +01:00
Siiiiinth a9b3a3d9f4 typo 2026-02-15 19:26:02 +01:00
Siiiiinth bf2cb25a7a move err handling 2026-02-15 19:24:56 +01:00
Siiiiinth 9919f59b47 changed comment 2026-02-15 18:53:44 +01:00
Siiiiinth 575c018ca4 merge remote 2026-02-15 18:45:17 +01:00