Guard destructive settings and radio actions
- Route reset campaign and tutorial replay through one reusable confirmation dialog; repeated presses cannot stack or emit twice. - Keep emergency hold-to-send single-shot and cover the post-submit release. - Add destructive-action regression checks, strings and documentation.
This commit is contained in:
1 parent
f6aa26e6ca
commit
7315166361
10 files changed
+121
-14
No files matched your search
+18
-4
@@ -1,6 +1,6 @@
|
||||
# UI copy and button inventory
|
||||
|
||||
Status: dialogue, button-state, focus, modal-close and font/layout passes complete; destructive-action and end-to-end audit in progress for 0.9.3.
|
||||
Status: dialogue, button-state, focus, modal-close, font/layout and destructive-action passes complete; end-to-end audit in progress for 0.9.3.
|
||||
|
||||
## Screen inventory
|
||||
|
||||
@@ -14,7 +14,7 @@ Status: dialogue, button-state, focus, modal-close and font/layout passes comple
|
||||
| Wand screening | `hud.gd` | A = admit, D = refuse | Shows alert and carried items. |
|
||||
| Radio / emergency | `radio_panel.gd` | Send request / hold Send emergency, Cancel | Normal click vs emergency hold. |
|
||||
| Pause | `pause_overlay.gd` | Resume, restart, Settings, quit to menu | Esc resumes. |
|
||||
| Settings | `settings_panel.gd` | Apply, Cancel, Replay tutorial, Reset campaign, rebind controls | Destructive reset asks for confirmation. |
|
||||
| Settings | `settings_panel.gd` | Apply, Cancel, Replay tutorial, Reset campaign, rebind controls | Both reset and tutorial replay ask for confirmation. |
|
||||
| Help | `help_overlay.gd` | Filter controls, Close | Policy card and current bindings. |
|
||||
| Shift review | `shift_review.gd` | Continue campaign, timeline, return to menu, quit | Campaign next step is shown here. |
|
||||
| Timeline | `event_timeline.gd` | Previous, Next, Close | Review evidence stepper. |
|
||||
@@ -54,8 +54,8 @@ Status: dialogue, button-state, focus, modal-close and font/layout passes comple
|
||||
| Pause | Quit to menu | Return to venue menu | Standard button |
|
||||
| Settings | Apply settings | Persist settings | Standard button |
|
||||
| Settings | Cancel | Discard edits | Standard button |
|
||||
| Settings | Replay tutorial | Clear tutorial flags and restart Hollywood | Standard button |
|
||||
| Settings | Reset campaign | Confirmed campaign reset | Confirmation dialog |
|
||||
| Settings | Replay tutorial | Confirm, then clear tutorial flags and restart Hollywood | Confirmation dialog |
|
||||
| Settings | Reset campaign | Confirm, then reset campaign progress | Confirmation dialog |
|
||||
| Help | Close | Close overlay | Standard button |
|
||||
| Review | Continue campaign | Start next venue | Hidden when campaign complete |
|
||||
| Review | Body camera timeline | Open event timeline | Standard button |
|
||||
@@ -152,6 +152,20 @@ resumes; `_show_start_menu()` keeps the pointer visible at the menu.
|
||||
The session smoke now covers menu → Settings → Cancel → menu, Help closing on
|
||||
right-click, and Settings cancel from pause leaving the guard unfrozen.
|
||||
|
||||
## Destructive actions
|
||||
|
||||
Campaign reset and tutorial replay both open a `ConfirmationDialog`; pressing
|
||||
the button again while it is open focuses the existing dialog instead of
|
||||
stacking a second one. The confirmation is dismissed and the signal is emitted
|
||||
at most once on OK; Cancel closes without emitting. The emergency radio remains
|
||||
a press-and-hold action: a normal click does nothing for an emergency, a short
|
||||
hold cancels, a full 1.6 s hold submits once, and the release after a completed
|
||||
hold cannot submit again.
|
||||
|
||||
Regression coverage:
|
||||
- `test_session_shell.gd` checks reset reuse/one-shot and replay confirmation/cancel.
|
||||
- `test_radio_panel.gd` checks normal click, short hold, full hold and post-submit release.
|
||||
|
||||
## Font-scale and long-string layout
|
||||
|
||||
The HUD scale is tested at its **0.75×** and **1.75×** bounds. HUD top/time labels
|
||||
|
||||
Reference in new issue
Block a user