Menu page (tiles, Continue), top page headers, sharp icons (#95 part 4) #146
No reviewers
Labels
No milestone
No project
No assignees
3 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
schaefera/utStudyBIble!146
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/lectern-menu"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Part 4 of #95.
What
Blast radius
Tier: trunk
Trunk paths touched:
qml/Main.qml,qml/pages/ReadingPane.qml,tools/e2e/(lib.sh, casesmenu-page,display-settings,typed-reference)Testing tier: standard (also: ship on sight: styling, icons, docs, translations)
Gate / rollback: no flag; revert this merge. No schema or settings change, no core or glue change.
Proof
6073513: green, run 293: rust (fmt, clippy, tests + coverage, deny, audit), app (C++/QML lint, -Werror build, clang-tidy; mem-check peak PSS 167723 kB normal / 172377 kB slow, budget 176000 kB), e2e (38 passed + 4 slow profile, 12 min), click.menu-page):stack.replace(Menu lost) → FAIL "no 'utsb: menu continue ' (x2) after 10 s" (Back no longer returns to the Menu).cargo make e2e-docker, 6073513's QML): 38 cases passed, plus 4 in the slow profile. Every existing case drives the moved Back and ⋮ throughlib.sh; the picker's typing field is tapped where the page reports it (utsb: picker field x y), not at a fixed point.cargo make shots, 3 cases passed), below.fe00f85checked in comment 2822 (every Menu path: tiles, Continue, Back to the Menu, then the reading pane). The header build (3c8ad25+ the @2x/@3x copies, same QML as head) shows the header on Menu, Settings, Modules (its ⋮ menu opens below the bar) and Go to. An A/B of the icons with and without @3x shows the blur gone (shot below).Review
Reviewer: fresh-context review at high (380,
4d3c484): no findings. Mockup check (381): 3 lows. The bar's arrow, position and face became the top header (3c8ad25, owner's call); the Continue subtitle (the module's full description) is recorded as a deviation in docs/10 (a5ecd2c); the dark bar's grey was PageBar's, which now has no background. Delta 382 (fe00f85, medium): 2 lows, no change needed. Delta 383 (6073513, medium, the header, icons and e2e tap): no findings. Deferred: the header's search field, #138. Left open: none.Review-Confidence: 100/100, a high first review plus medium deltas cover every trunk change through
6073513, nothing left open, CI and the break tests back the new behaviour; not covered by any gate: the owner's phone sign-off on the header's feel and dark mode.Confidence by part
PageBar.qml(implicit height withbackground: null) and the starter page, whose header shows only while installing or adding Bibles.Main.qml(Menu kept under Settings and Modules, cleared on "no Bible"): high; reviewed at high, e2e.Mockup deviations (artboard: board C, target/mockup/Lapis.dc.html), in docs/10:
Screenshots
Desktop (Xvfb, Default style):
Phone (Suru, Paper):
Icons without and with @3x:
🤖 Generated with Claude Code
Fresh-context review, level: high (blast radius: trunk; trunk paths qml/Main.qml, qml/pages/ReadingPane.qml, tools/e2e/).
Reviewed commit:
4d3c484e04Range: origin/main...HEAD
Files reviewed:
docs/10-design.md, po/de.po, po/utstudybible.schaefera.pot, qml/Main.qml, qml/controls/MenuTile.qml, qml/controls/qmldir, qml/pages/MenuPage.qml, qml/pages/ReadingPane.qml, qml/qml.qrc, tools/e2e/cases/display-settings.sh, tools/e2e/cases/menu-page.sh, tools/e2e/lib.sh; read for context: qml/pages/SettingsPage.qml, qml/platform/SystemColours.qml, qml/theme/Theme.qml, qml/controls/RowButton.qml, qml/controls/PageBar.qml, qt/src/reading_model.rs (refresh_bibles, bibles_revision, bible_description), tools/e2e/run.sh, tools/mem-check/run.sh, and every e2e case that uses e2e_menu / e2e_open_modules / e2e_tap_settings / e2e_tap_back / e2e_tap_close.
Findings: none with a concrete failure scenario at high, medium or low.
What I checked and found sound:
Not verified by me, left to CI and the phone: whether a tap on a tile's icon area (the ToolButton inside MenuTile's contentItem, above or below the sibling MouseArea in z-order) reaches the MouseArea. The e2e case taps the tile centre only, so it would not show a dead icon area; worth tapping the icon and the label on the phone.
Mockup check
Compared: Lapis.dc.html, Board C, screen 5 "Menu (one level down), light", and the palette notes, against target/shots/menu-page-01-menu-light.png and menu-page-01-menu-dark.png (menu-page case, run at
4d3c484), and against qml/pages/MenuPage.qml and qml/controls/MenuTile.qml.Matches the artboard:
Differences the PR body gives a sound reason for (no finding): History and Bookmarks tiles left out (no feature yet), no search field (not built), chevron as a text glyph, bold in place of 600 (Qt has no 600 weight on this font).
Low:
No medium findings.
Round 1 answers (fix commit
a5ecd2c, docs only).Review level: medium, delta. Commit
fe00f85. Range a5ecd2c..fe00f85.Files: qml/controls/MenuTile.qml, qml/pages/MenuPage.qml, tools/e2e/cases/menu-page.sh (also read tools/e2e/lib.sh, qml/controls/PageBar.qml).
No high or medium findings.
Low, no action needed:
Phone check on
fe00f85(Volla, Suru, Paper; journalbuild 0.0.1 feat/lectern-menu@fe00f85fa), driven with ute2e:menu tile icon #1e4fa8 label #22201c accent #1e4fa8 text #22201c(lapis icons, names in the text colour; Suru doesn't tint them).settings opened; Back → the Menu again (menu continuelogged), not the text.modules rows 274 ready; Back → the Menu again.Also on
fe00f85: menu-page now checks the tile colours (light#1e4fa8, dark#8fb0f0), and Back-to-Menu is counted once the opened page is up (a stray second report of the Menu used to satisfy it). Fails without the change: icons tinted with the text colour → FAIL on the colour check; Settings opened withstack.replace→ FAIL "no 'utsb: menu continue ' (x2)". Delta review 382: clean (2 lows, no change needed).For the owner:
Level: medium, delta. Commit
6073513. Range fe00f85..6073513.Files reviewed: docs/04-features.md, docs/06-sources.md, docs/10-design.md, po/de.po, po/utstudybible.schaefera.pot, qml/controls/PageBar.qml, qml/controls/MenuTile.qml, qml/controls/IconMenuItem.qml, qml/pages/MenuPage.qml, ModulesPage.qml, PickerPage.qml, SettingsPage.qml, StarterPage.qml, VerseSheet.qml, qml/qml.qrc (all 6 new @2x/@3x pairs listed), qml/icons/*@2x/@3x.png (listed only), tools/e2e/lib.sh, tools/e2e/cases/typed-reference.sh, tools/icons/render.sh.
Findings: none at medium or high. I traced each of these and found no failing scenario:
No diff-line comments.
WIP: Menu page: tiles and Continue (#95 part 4)to Menu page (tiles, Continue), top page headers, sharp icons (#95 part 4)Ready for your phone sign-off. CI is green on
6073513and Review-Confidence is 100. The build on the phone (3c8ad25+ icon copies) has the same QML as head.I checked these on the phone myself (shots in the body):
For you:
🤖 Generated with Claude Code
Owner sign-off on the phone (2026-10-31, in session): "Looks good". That covers the header's feel, dark mode and the checklist in comment 2832. Next: the gate approval, then the merge.
🤖 Generated with Claude Code
Merge gate: approved at
6073513.Checked:
6073513, the last reviewed commit.git log 6073513..HEADis empty, so no commits came after the last review round.6073513is green: changes, rust, audit, app, e2e, click (run 293).menu-pagecase fails without the change. No elevated, maximum or AI-behavior gate is left unrun.