Fix playback, API races, tray, MPRIS, and search UX; add tests

- Correct history/resume next-previous context and list index resync after reload
- Abort stale RadioBrowser requests and suppress error banners when cache satisfies loads
- Reset local search filter on page changes and debounce compact-mode API search
- Move system tray to C++ (QSystemTrayIcon) for reliable Wayland context menus
- Harden MPRIS registration and metadata updates for Plasma media widgets
- Add playback and API race unit tests
- Drop unused KF6 Kirigami, I18n, and CoreAddons build dependencies
- Update packaging docs, CI, and PKGBUILD to match Qt-only requirements
This commit is contained in:
Sebastian Palencsar
2026-06-20 14:06:48 +02:00
parent 4718810d24
commit 1c736b97a6
20 changed files with 1007 additions and 155 deletions

View File

@@ -1,6 +1,6 @@
# BearWave
KDE-focused desktop internet radio app for Linux, built with Qt 6, QML, KDE Frameworks, and QtMultimedia.
KDE-focused desktop internet radio app for Linux, built with Qt 6, QML, and QtMultimedia.
BearWave is designed for fast station browsing, simple playback controls, favorites, resume support, tray behavior, and clean Plasma integration without turning into a heavy media suite.
@@ -134,7 +134,6 @@ BearWave is currently aligned with and tested primarily against:
- Arch Linux
- KDE Plasma 6
- Qt 6
- KDE Frameworks 6
- Qt6 Multimedia
If support for other distributions becomes reliable, they should be added here explicitly instead of implied.
@@ -169,15 +168,15 @@ If you want the least surprising path today, use either:
### Arch Linux
```bash
sudo pacman -S cmake extra-cmake-modules qt6-base qt6-declarative qt6-tools \
kirigami qt6-multimedia qt6-multimedia-ffmpeg
sudo pacman -S cmake qt6-base qt6-declarative qt6-tools \
qt6-multimedia qt6-multimedia-ffmpeg
```
### KDE Neon / Ubuntu-based
```bash
sudo apt install cmake ninja-build qt6-base-dev qt6-declarative-dev qt6-tools-dev \
libkf6kirigami-dev libkf6i18n-dev libkf6coreaddons-dev qt6-multimedia-dev
qt6-multimedia-dev
```
Note: exact package names can vary between distro releases, and non-Arch dependency sets should currently be treated as best-effort guidance rather than a guaranteed tested path.