Display: Paper or White light ground (#95) #143
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!143
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/lectern-light-ground"
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?
What
Part 2 of 5 of #95.
ui.light_whiteand read by everySystemColoursthroughTheme.lightWhite, so a switch shows at once on every page.RowButton(cross-references, the verse sheet's actions, Modules and Starter rows) now sits on the page's or the sheet's own ground. On the phone, Suru drew a white plate under flat buttons, so rows showed white on Paper. It keeps a grey tint while pressed and gets a focus ring.light-ground, covers the setting.language-switchnow scrolls Settings to the language options first.Refs #95.
Blast radius
Tier: trunk
Trunk paths touched:
qt/src/reading_model.rs,qml/pages/ReadingPane.qml,qml/Main.qml,core/src/worker.rs(test only),tools/e2e/Testing tier: standard (UI, a setting, an e2e case)
Gate / rollback: Paper stays the default, so the only change users see until they pick White is that the rows are no longer white on the phone. To undo, revert this merge. The setting is one new key with no migration, and it is ignored once the code is gone.
Proof
cargo makeexits 0. The new test isthe_light_ground_is_paper_until_white_is_chosen. Fails-without-change: with the default flipped to "1", the test fails.cargo make app-dockerexits 0 (on4d587ab).cargo make i18nreports 139 strings translated and none missing; the German strings are added.E2E_CASES=light-ground cargo make shotspasses in light mode. It goes Paper → White → kill -9 → White → Paper → kill → Paper.--dark), the row is greyed out.SystemColours.whiteforced tofalse, it fails with "no 'utsb: dark false, window #ffffff'".E2E_CASES=language-switch cargo make shotspasses. Before the fix it failed with German at y 976 in a 960 px window.qmllintis clean.E2E_CASES="verse-sheet note-sheet starter-install module-manager"passes (4 passed) on3a926d1, and verse-sheet plus module-manager pass onad75aa3.feat/lectern-light-ground@ad75aa3f9, Paper, the Esther 2:8 verse sheet: the cross-reference row's pixels are #FAF8F3, the sheet ground (1063 of 1080 pixels on a line through the row; the rest is text).palette.highlightring on the Paper ground, and the other rows are plain.ad75aa3for all jobs: changes, rust, audit, app, e2e and click.Mockup
Compared against artboard C "Ink and lapis" (https://claude.ai/artifact/MwvxmpLR96sZkwbiCwAhp6): screen 6 (John 3 on paper), screen 7 (John 3 on white) and screen 10 (Menu on white), colours only.
Resources (docs/07)
Review
Reviewer:
code-reviewat high (0 findings) and a mockup check (1 low finding, answered: not a deviation, see Mockup).4d587ab: a delta review at medium (review 371, 0 findings).3a926d1: a delta review at medium (review 372). It had 1 low finding: no keyboard focus indicator. Fixed inad75aa3with a 2 px ring in the style's highlight whilevisualFocus.Review-Confidence: 95/100 (audit on
ad75aa3). The audit deducted 5 because the focus-ring fix to review 372's finding had no further review round.Confidence by part
🤖 Generated with Claude Code
Fresh-context review (claude-review)
Level: high. Blast radius: trunk (qt/src/reading_model.rs, core/src/worker.rs test only). Testing tier: standard.
Reviewed commit:
49d19782acRange: origin/main...HEAD
Files reviewed:
core/src/settings.rs, core/src/worker.rs, qt/src/reading_model.rs, qml/platform/SystemColours.qml, qml/platform/ut/SystemColours.qml (unchanged, checked), qml/theme/Theme.qml, qml/theme/qmldir, qml/pages/ReadingPane.qml, qml/pages/DisplaySettings.qml, qml/pages/SettingsPage.qml, qml/Main.qml, tools/e2e/cases/light-ground.sh, tools/e2e/lib.sh, docs/10-design.md, po/de.po, po/utstudybible.schaefera.pot
Findings: none at high, medium or low severity.
Checked and found sound:
setting()match arm, the Default-derivedlight_white: false, andset_flagfollow the existing flag pattern.white: !dark && Theme.lightWhite).checkedupdates do not break the QML bindings, and an autoExclusive button cannot be unchecked by clicking it. Theenabledlog reflects the effective state, so the dark-theme greyed check in the e2e case holds. The new section is within the first screen of the 540x960 e2e window.CI was still pending at review time (reviewed commits only).
Mockup check
Compared: Lapis.dc.html screens 6 (paper), 7 (white), 10 (menu, white) against
qml/platform/SystemColours.qmland the light-ground e2e shots (reading-paper, reading-white, settings-paper/white, menu), looked at at 50%. Scope as given: only the White and Paper colours on grounds, surfaces, hairlines, text, verse numbers, markers and red letters.No medium findings.
Matches the artboard exactly (hex compared to source):
core/src/render.rsuses the same lapis and red on both light grounds, which is correct because the artboard keeps them identical.Low:
surfacerole (#F7F8FA on screen 10, #FFFFFF on screen 6), and the popup menu is plain white. docs/10-design.md says Suru controls keep their look until later parts and the pill is a later PR, so this is not a deviation here. The PR body has no "Mockup" section though (docs/09 asks for one); add a line naming artboards 6/7/10 and this footer/popup/Suru-button difference with that reason.whiteis false when dark).Reply to the mockup check (low, footer ToolBar): agreed, not a deviation in this part. The footer and popup keep Suru's look until the later parts of #95 (docs/10-design.md). Added a "Mockup" section to the PR body naming artboards 6/7/10 and this difference with that reason. No code change; the reviewed commit
49d1978stays the head.Delta review
Level: medium. Commit:
4d587abc2e. Range: 49d19782ac3be8d584852b0a94befd55d761a7d6..4d587abc2e5fc19ccb5cf7c86486226f6a3fcdc0 (one commit). Blast radius: trunk (tools/e2e/).Files: tools/e2e/cases/language-switch.sh
Findings: none at medium or high.
Checked:
Residual risk (low): 15 notches (about 60 px each, so roughly 900 px) must reach the end of the page. If Settings grows longer than the window plus that distance, the language options would be reported off-screen and the tap would miss. The case does not check the reported y against e2e_h.
Phone check, build
feat/lectern-light-ground@4d587abc2(Volla Plinius, light mode)Checked by me with ute2e and the journal:
utsb: dark false, window #faf8f3, text #22201c. There are no QML errors. The only DENIED line is the known Libertine D-Bus one.window #ffffff, text #1f2023. The Settings page turns white and stays readable.dark … #ffffffcomes beforeshowing Ps 1). The reading pane samples #FFFFFF, with lapis verse numbers.window #faf8f3). The phone is left on Paper.light-groundreading on White).For the owner:
🤖 Generated with Claude Code
Delta review, level medium, commit
3a926d1, range 4d587ab..3a926d1Files: qml/controls/RowButton.qml (reviewed with its users TaskRow.qml, RefRows.qml, StarterPage.qml, ModulesPage.qml, VerseSheet.qml).
No high or medium findings. None of the five users override background, checked or highlighted, so none relied on the old plate. Press feedback is kept (grey 0.18 tint on
down), which reads on Paper, White and dark. The disabled dim still comes from opacity.Findings outside the diff:
visualFocus, so with a hardware keyboard or switch access the focused row has no indicator (the Default style's focus ring is gone with the replaced background). Touch use on the phone is unaffected.Answer to review 372. It found one low issue: no keyboard focus indicator on
RowButton. Fixed inad75aa3: a 2 px ring in the style'spalette.highlightwhilevisualFocus.The owner's report that cross-references were bright white on Paper is fixed in
3a926d1. Suru drew a white plate under the flatRowButton; it now sits on the sheet's own ground.The phone has build
feat/lectern-light-ground@ad75aa3f9. In the Esther 2:8 verse sheet the cross-reference row is #FAF8F3 (Paper); on the previous build it was #FFFFFF. The same button is used by the verse sheet's actions and by the Modules and Starter rows, so those lose the white plate too.One more item for the checklist above: in Paper mode, open a verse sheet and check that the cross-references look right, including the grey tint when you press one.
Phone sign-off from the owner on build
feat/lectern-light-ground@ad75aa3f9, which covers the checklist in 2759 and 2765: "Signed off, good to go".Merge gate, level medium, commit
ad75aa3f93. Approved.Checks:
ad75aa3f93: pass.ad75aa3. Review 371's residual low (scroll distance in language-switch) is not a defect. Nothing is left open.ad75aa3f9).Note, not a blocker: the PR is still a draft with a "WIP:" title, and the API reports mergeable=false. Check this before merging.
WIP: Display: Paper or White light ground (#95)to Display: Paper or White light ground (#95)