mirror of
https://github.com/spalencsar/bearwave.git
synced 2026-07-06 22:24:17 +02:00
Replace the modal About dialog with an embedded About page and introduce a three-pane desktop layout: persistent sidebar navigation, flat station list, right-side details panel, and compact player bar. Load the GPLv3 license text from C++ and expose it to QML as context data. Normalize i18n source strings to English, complete German and Russian translations (133 strings each), and centralize page navigation helpers in Main.qml. Simplify compact HeaderNavigation and extend .gitignore for local build artifacts.
2.2 KiB
2.2 KiB
Contributing to BearWave
BearWave is a KDE-focused desktop internet radio app built with C++/Qt 6, QML, and QtMultimedia.
The project favors:
- stability over feature churn
- minimal dependencies
- readable, conservative code
- Plasma-friendly desktop behavior
Before You Contribute
- Check existing issues before opening a new one.
- Prefer focused pull requests over broad refactors.
- Keep behavior predictable for desktop users.
- Avoid adding dependencies unless there is a clear payoff.
Local Setup
Build from the repository root:
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j"$(nproc)"
Optional local install:
cmake --install build --prefix "$HOME/.local"
If you changed QML:
qmllint src/qml/Main.qml src/qml/components/*.qml src/qml/theme/BearTheme.qml
For UI layout work that should be tested separately from the default build tree:
cmake -S . -B build-maclayout -DCMAKE_BUILD_TYPE=Release
cmake --build build-maclayout -j"$(nproc)"
./build-maclayout/src/bearwave
Run unit tests after backend changes:
ctest --test-dir build --output-on-failure
Change Guidelines
- Follow the existing style in each file.
- Keep changes minimal and scoped.
- Do not block the UI thread.
- Keep network operations asynchronous.
- Preserve MPRIS behavior and user state compatibility.
- When changing resources, register them in
src/qml.qrc. - When changing the About page, keep the full GPL text resource visible and keep third-party technology notes accurate.
Manual Checks
Please smoke-test the area you changed when possible:
- app launches successfully
- station list loads
- search and filtering behave correctly
- play/pause/stop work
- favorites persist across restart
- resume restores last station and volume
- tray and MPRIS behavior still work
- About page opens from sidebar/compact navigation, social links work, and the GPL license text is scrollable
Pull Requests
Useful pull requests usually include:
- a short description of the user-visible change
- any relevant screenshots for UI changes
- exact verification commands that were run
- known limitations or follow-up work