Proof-of-concept for the ecosystem-wide design-system work: every setting
is now an AdwPreferencesGroup/SwitchRow/SpinRow/ActionRow/ComboRow via
bread-theme::adw, instead of a hand-rolled GtkGrid of labels + raw widgets.
This directly fixes the two worst defects a design critique found here:
- Toggle switches rendered ~1400px wide, like progress bars — caused by
GtkGrid sizing a switch's column to match a sibling entry's hexpand in
the same grid, and Switch has no default that resists filling that
width. AdwSwitchRow owns its own layout, so this class of bug can't
recur.
- Spin buttons were ~1300px from the label they modified, for the same
grid-column-sizing reason. AdwSpinRow docks the spinner to its title.
Also softened the jargon-forward section titles the critique flagged
("Model (Tier 2 ONNX)", "Ollama (Tier 3)") — the tier/implementation
detail moved from the title (loud, unavoidable) to each group's
description (quieter, still there for anyone who wants it).
bread-theme now needs a direct dependency here (branch=dev, `adw`
feature) since breadpad-shared's own bread-theme dependency is tag-pinned
to a release before this feature existed.
30 lines
1,023 B
TOML
30 lines
1,023 B
TOML
[package]
|
|
name = "breadman"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
authors.workspace = true
|
|
|
|
[[bin]]
|
|
name = "breadman"
|
|
path = "src/main.rs"
|
|
|
|
[dependencies]
|
|
breadpad-shared = { path = "../breadpad-shared" }
|
|
# Capture primitives for `--screenshot` mode — see src/screenshot.rs.
|
|
bread-screenshots = { git = "https://git.breadway.dev/Breadway/bread-ecosystem", branch = "dev" }
|
|
# libadwaita-based settings-screen components (see src/views/settings.rs) —
|
|
# on "dev", not breadpad-shared's tag-pinned copy, since the `adw` feature
|
|
# doesn't exist on a tagged release yet.
|
|
bread-theme = { git = "https://git.breadway.dev/Breadway/bread-ecosystem", branch = "dev", features = ["adw"] }
|
|
libadwaita = { version = "0.9", features = ["v1_7"] }
|
|
anyhow.workspace = true
|
|
tracing.workspace = true
|
|
tracing-subscriber.workspace = true
|
|
serde.workspace = true
|
|
serde_json.workspace = true
|
|
tokio.workspace = true
|
|
chrono.workspace = true
|
|
gtk4.workspace = true
|
|
dirs.workspace = true
|
|
futures-channel = "0.3"
|