Libsecret
NOTE: This update will change how Euphonica store passwords, necessitating entering your password again. The old password entry is still there in your default keyring and can be safely deleted afterwards.
Previously Euphonica was using keyring to communicate with the host system's secrets store backend (on Linux that'll be secret_service). Over time it's become pretty much Linux-only and so there's no point using this heavyweight crate anymore. Switching to libsecret also gives us native Flatpak compatibility without having to specify a DBus talk-name fixed permission.
Global busy spinner
Add a spinner to the top left of the window to indicate presence of running background tasks. Hovering over it will show the number of remaining tasks. This isn't a progress bar as background tasks get added all the time.
This should help clarify what Euphonica is doing behind the scenes especially for slower MPD server hardware, slow connections, large libraries or mass album art downloads on cold starts. Related to #145.
Lazy init
Views are now initialised only upon the first time they're navigated to. This spreads the startup init workload over a longer period of time, reducing stutter and reducing costs of repeated reconnections. Testing shows this to provide a pretty nice improvement in overall smoothness on startup.
Better connection error handling
The MPD-facing code has been significantly revamped to handle errors more gracefully. Connection errors will now trigger reconnection attempts. Most of the panic!() and expect() have been replaced with proper error handling now, so Euphonica should crash frequently.
Should fix #146.
Other changes
- Lyrics box now expands to the remaining available space after the album art has grown to its maximum size in the player pane. It'll also shrink down to 32px to fit in the minimum window height. This fixes the player bar overflowing when lyrics are enabled.
- Fixed playlist editor's Apply button remaining disabled after one save.
Pull Requests
- v0.97.0: Switch to libsecret, better connection error handling, lazy init & more by @htkhiem in #148
Full Changelog: v0.96.4-beta...v0.97.0-beta