mirror of
https://github.com/spalencsar/bearwave.git
synced 2026-07-06 14:24:14 +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.
85 lines
2.2 KiB
Markdown
85 lines
2.2 KiB
Markdown
# 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:
|
|
|
|
```bash
|
|
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
|
|
cmake --build build -j"$(nproc)"
|
|
```
|
|
|
|
Optional local install:
|
|
|
|
```bash
|
|
cmake --install build --prefix "$HOME/.local"
|
|
```
|
|
|
|
If you changed QML:
|
|
|
|
```bash
|
|
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:
|
|
|
|
```bash
|
|
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:
|
|
|
|
```bash
|
|
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
|