Commit graph

6 commits

Author SHA1 Message Date
Breadway
b85d682721 breadman: rebuild settings with libadwaita components
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.
2026-07-30 18:39:56 +08:00
Breadway
77b402833f breadman: capture every stack page + the editor and new-note windows
--view (and now --screenshot) already opened any named stack page
directly, so the other 9 pages (upcoming/todo/reminder/idea/note/
question/archive/settings/errors) needed zero new code — just registry
entries in bread-capture.

Two more real windows needed actual wiring: the per-note editor popover
(editor::build_editor_popover, normally only reachable via a specific
note card's edit button — screenshot mode calls the builder directly
against the first real note in the store instead, since there's no
button handle to synthesize a click on) and the "New Note" modal
(show_add_note_window, same on_build-hook pattern already used for
breadbar's wifi add-network dialog).

The editor popover's first attempt parented it to the whole window,
which put it at GTK4 Popover's default Top position — entirely above the
window, clipped off the canvas in every capture despite mapping
successfully (no error, just invisible). Anchoring to a real button
(new_note_btn) with an explicit Bottom position fixed it.
2026-07-29 17:27:05 +08:00
Breadway
c13b7b0599 breadman: add --screenshot CLI mode for automated capture
Same reasoning as breadpad, extending breadman's own hand-rolled arg
parser rather than adding clap. --screenshot <view> doubles as the view
selector — breadman already supports opening directly to a named stack
page via --view/initial_view, so this just feeds that same mechanism
instead of needing a separate one. Full known-size canvas capture, plain
top-level window (not layer-shell).

Also fixes the same NON_UNIQUE footgun as breadpad/breadbox/etc.
2026-07-29 16:37:01 +08:00
Breadway
c30aa2497e Fix illegible text on light pywal palettes + hot-reload
Use bread-theme 0.2.7's luminance-picked ink (@on-*): type chips on @overlay and
selected sidebar rows / confirm buttons on @blue kept @fg or @bg, which vanished
when those slots came out light/dark. They now use @on-overlay / @on-accent.

Add breadpad_shared::theme::apply_live (wraps bread_theme::gtk::apply_app_css) so
breadpad and breadman recolour live on `bread-theme reload` and re-read the user's
style.css — replacing the build-once provider. bread-theme bumped to v0.2.7
(gtk feature).
2026-06-17 12:42:12 +08:00
Breadway
c4626dd64d Prepare repo for GitHub publication
- Add MIT LICENSE file
- Expand .gitignore with standard Rust/Linux entries
- Remove dangling symlinks (breadmancli, breadpadcli) and dev scratchpad (svgs.txt) from git tracking
- Replace unsafe unwrap() calls with expect() in breadman CLI (guarded by prior filter)
2026-06-06 12:25:40 +08:00
Breadway
feefdb81b9 Committing before copilot touches this 2026-05-25 19:53:50 +08:00