Files
RedBear-OS/local
vasilito 6c30edaf3e dialogs: complete P1-P4 unification (PLAN §17.4)
Executes the four high-priority items from PLAN §17.4 backlog,
bringing all 4 of the remaining bespoke dialog surfaces onto the
unified render_popup / render_button_row path.

P1 (HIGH) widget/dialog.rs — Dialog::render now delegates the
      shell to terminal::popup::render_popup instead of building
      its own raw Clear + Block. This closes the only shadow
      regression in the unified stack: Dialog::info / confirm /
      confirm_all now inherit MC-matching rounded borders +
      drop shadow + Clear + skin-driven palette, identical to
      every other migrated dialog. New test
      render_draws_drop_shadow_at_bottom_right_corner asserts the
      shadow bg is painted at the popup's bottom-right cell.

P2 (HIGH) overwrite_dialog.rs — Y/N/All/Skip/Abort legend replaced
      by 5-element render_button_row (Yes=Default, No=All,
      SkipAll, Abort=Normal). Was 40 lines of hand-rolled Span
      with hand-picked theme.executable / theme.error /
      theme.title_bg / theme.warning colors. New test
      render_uses_mc_bracket_button_shapes asserts Default uses
      '[<' / '>]' brackets and Normal uses '[ ' / ' ]'.

P3 (MED) confirm_dialog.rs — '[ Save ]  [ Cancel ]' Paragraph
      replaced by 2-element render_button_row (Save=Default,
      Cancel=Normal). New test asserts the same MC bracket shapes.

P4 (MED) editor/menubar.rs — F9 dropdown migrated to render_popup,
      matching the already-migrated filemanager/menubar.rs
      dropdown (committed in c032c9a787). Top menu bar (full-width
      by design) intentionally untouched.

Acceptance criterion from §17.6 is met: grep for raw Clear returns
exactly 4 sites, all defensible:
  - terminal/popup.rs (the renderer itself)
  - filemanager/tree.rs (full-screen, intentional)
  - filemanager/menubar.rs top bar (intentional full-width)
  - editor/menubar.rs top bar (intentional full-width)
widget/dialog.rs no longer contains a raw Clear.

Tests: 1184 passing, 0 failing (was 1180; +4 new). Both release
builds (default + --features sftp) clean.
2026-06-21 01:08:16 +03:00
..