c8e19ea47f
Comprehensive audit of every dialog in tlc — render path, button
source, shadow source, hotkey consistency. Verifies the Phase 16-18
work brought 44/46 dialog surfaces onto the unified render_popup
path (33 filemanager + 5 editor/render + 1 ops/progress), with MC
rounded borders + drop shadow + skin-driven palette inherited
automatically.
Identifies the remaining 7% (the four high-priority items in §17.4):
P1 (HIGH) widget/dialog.rs:194 — Dialog::render uses raw Clear +
own Block instead of render_popup, so Dialog::info / confirm /
confirm_all render flat-border popups with NO drop shadow.
Only shadow regression in the unified stack. ~5-10 LOC.
P2 (HIGH) filemanager/overwrite_dialog.rs:138-181 — hand-rolled
Y/N/All/Skip/Abort colored Span legend. Single most visually
inconsistent button strip in the codebase. Migrate to
render_button_row of 5 ButtonSpec. ~25-40 LOC.
P3 (MED) filemanager/confirm_dialog.rs:186-191 — '[ Save ] [ Cancel ]'
Paragraph with theme.hidden. Migrate to 2-button row. ~8-15 LOC.
P4 (MED) editor/menubar.rs:520 — F9 dropdown still uses hand-rolled
Block + Clear instead of render_popup. Filemanager menubar
dropdown was migrated (c032c9a787); editor was not. ~5-10 LOC.
Plus lower-priority items:
P5 editor SaveBeforeClose Y/N/Esc legend migration
P6 viewer/editor SaveBeforeClose unification
P7 (optional) ~15 decorative key-legend hints migrated to
ButtonKind::Narrow rows
§17.3 documents the intentional non-targets (full-screen TreeDialog,
F9 menu-bar top rows, viewer render_prompt_overlay) so future
auditors know not to migrate them.
§17.5 codifies the three hotkey patterns (Action OK/Cancel,
Yes/No confirm, Yes/No/All/Skip confirm) and the locale keys
that drive them.
§17.6 sets the acceptance criteria: after P1-P4, grep for raw
Clear should return 5 sites, all defensible. Zero shadow
regressions. Zero hand-rolled button strips that look like
real buttons.
Tests: 1180 passing, 0 failing (no code changes, audit only).