Entry dialog: close with an X or a press outside, no Close button #18

Merged
schaefera merged 3 commits from entry-dialog-close into main 2026-10-13 20:21:32 +00:00
Collaborator

What

The entry dialog's big Close button sat right under Delete. It is gone. The dialog now closes with an X next to the entry name, or with a press on the dimmed area around it. A press inside the dialog keeps it open, and Escape still closes it, as before. Delete still asks for confirmation. Long entry names wrap after / and - beside the X.

Blast radius

Tier: leaf
Trunk paths touched: none (qml/EntryDialog.qml, the new tests/qml/tst_EntryDialog.qml, and the regenerated po/touchpass.aps.pot)
Gate / rollback: revert this merge commit.

Proof

  • CI: QMAKE=qmake-qt5 cargo make gives test result: ok. 73 passed; 0 failed, the 2 allowed audit warnings, and Build Done.
  • QML tests: cargo make qml-test gives Totals: 75 passed, 0 failed. That includes 3 new EntryDialog tests: the X closes the dialog, a press outside closes it, a press inside keeps it open.
  • Each test fails without its part of the change (one breakage at a time, run, then restored):
    • outside-press switch turned off: test_a_press_outside_closes_it FAILS
    • X does nothing: test_the_x_closes_it FAILS
    • pressing the heading closes the dialog: test_a_press_inside_keeps_it_open FAILS
  • Test pitfall: QtTest's TestCase item is never visible, so presses never reached a dialog opened over it, and the first version of these tests passed for nothing. The test now opens the dialog over a visible root item. No earlier test in the repo clicks anything, so none were affected.
  • UI: I took Xvfb screenshots in the clickable image (QtTest grabImage) with a short and a long entry name and checked them by eye. The X sits at top right, the buttons are Copy / Edit / Delete, and the long name wraps at / and -. The images are not attached; please look at it once in clickable desktop --arch amd64 --no-nvidia or on the device.

Review

Reviewer: fresh-context code-review at medium found 5 issues (3 low, 2 info). I fixed 2 and declined 3:

  • Fixed: the X had no accessible name. It now has Accessible.name: "Close".
  • Fixed: a long name broke mid-word. It now wraps at word boundaries where possible.
  • Declined: the dialog relies on Lomiri's private __closeOnDismissAreaPress. It's the same switch Popover sets, and a Lomiri upgrade that drops it would fail qml-test.
  • Declined: the fixed wait(500) in the inside-press test. Closing is immediate, since the fade duration is 0.
  • Declined: churn in the .pot file, which is expected.

Review-Confidence: not audited (leaf)

Confidence by part

  • X and outside-press closing: high. Each is pinned by a test that fails when it's broken.
  • Look and hit target of the X (4gu) on a real phone: medium. I only saw it under Xvfb.

🤖 Generated with Claude Code

## What The entry dialog's big Close button sat right under Delete. It is gone. The dialog now closes with an X next to the entry name, or with a press on the dimmed area around it. A press inside the dialog keeps it open, and Escape still closes it, as before. Delete still asks for confirmation. Long entry names wrap after `/` and `-` beside the X. ## Blast radius **Tier:** leaf **Trunk paths touched:** none (`qml/EntryDialog.qml`, the new `tests/qml/tst_EntryDialog.qml`, and the regenerated `po/touchpass.aps.pot`) **Gate / rollback:** revert this merge commit. ## Proof - **CI:** `QMAKE=qmake-qt5 cargo make` gives `test result: ok. 73 passed; 0 failed`, the 2 allowed audit warnings, and `Build Done`. - **QML tests:** `cargo make qml-test` gives `Totals: 75 passed, 0 failed`. That includes 3 new EntryDialog tests: the X closes the dialog, a press outside closes it, a press inside keeps it open. - **Each test fails without its part of the change** (one breakage at a time, run, then restored): - outside-press switch turned off: `test_a_press_outside_closes_it` FAILS - X does nothing: `test_the_x_closes_it` FAILS - pressing the heading closes the dialog: `test_a_press_inside_keeps_it_open` FAILS - **Test pitfall:** QtTest's `TestCase` item is never visible, so presses never reached a dialog opened over it, and the first version of these tests passed for nothing. The test now opens the dialog over a visible root item. No earlier test in the repo clicks anything, so none were affected. - **UI:** I took Xvfb screenshots in the clickable image (QtTest `grabImage`) with a short and a long entry name and checked them by eye. The X sits at top right, the buttons are Copy / Edit / Delete, and the long name wraps at `/` and `-`. The images are not attached; please look at it once in `clickable desktop --arch amd64 --no-nvidia` or on the device. ## Review **Reviewer:** fresh-context `code-review` at medium found 5 issues (3 low, 2 info). I fixed 2 and declined 3: - **Fixed:** the X had no accessible name. It now has `Accessible.name: "Close"`. - **Fixed:** a long name broke mid-word. It now wraps at word boundaries where possible. - **Declined:** the dialog relies on Lomiri's private `__closeOnDismissAreaPress`. It's the same switch Popover sets, and a Lomiri upgrade that drops it would fail `qml-test`. - **Declined:** the fixed `wait(500)` in the inside-press test. Closing is immediate, since the fade duration is 0. - **Declined:** churn in the `.pot` file, which is expected. **Review-Confidence:** not audited (leaf) ## Confidence by part - **X and outside-press closing:** high. Each is pinned by a test that fails when it's broken. - **Look and hit target of the X (4gu) on a real phone:** medium. I only saw it under Xvfb. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
The Close button sat right under Delete, so a slip could start a delete.
The dialog now closes with an X next to the entry name or a press on the
dimmed area around it (Lomiri's __closeOnDismissAreaPress, which Popover
sets and Dialog leaves off); Escape already closed it.

The QML test opens the dialog over a visible root item: TestCase itself
is never visible, so presses wouldn't reach the dialog.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Entry dialog: name the X for screen readers, wrap long names at / and -
All checks were successful
CI / ci (pull_request) Successful in 3m14s
CI / audit (pull_request) Successful in 10s
CI / qml (pull_request) Successful in 25s
ebd5eb7980
From review: the X had no accessible name, and a long entry name broke
mid-word next to it.

Review-Tier: leaf

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
schaefera approved these changes 2026-10-13 20:09:49 +00:00
Dismissed
claude-bot changed title from WIP: Entry dialog: close with an X or a press outside, no Close button to Entry dialog: close with an X or a press outside, no Close button 2026-10-13 20:10:47 +00:00
Merge remote-tracking branch 'origin/main' into entry-dialog-close
All checks were successful
CI / ci (pull_request) Successful in 8m4s
CI / audit (pull_request) Successful in 17s
CI / qml (pull_request) Successful in 37s
fb1c05ed1e
# Conflicts:
#	po/touchpass.aps.pot
schaefera approved these changes 2026-10-13 20:15:15 +00:00
schaefera deleted branch entry-dialog-close 2026-10-13 20:21:32 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
schaefera/TouchPass!18
No description provided.