tlc: PLAN.md — log Phase 17 skin_dialog + 16 follow-up candidates
Document Phase 17 (skin_dialog popup shell migration) and enumerate the 16 remaining dialogs that still bypass render_popup: sort, compare, overwrite, filter, tree, encoding, connection, layout, owner, panel_options, pattern, confirm, config, permission, chattr, progress Each is ~50-100 LOC of refactor work (replace inline Clear+Block with render_popup call). Same premium chrome (rounded borders, MC-matching drop shadow) as Phase 17.
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
# Twilight Commander (TLC) — Pure Rust Reimplementation Plan
|
||||
|
||||
**Status:** Architecture chosen. Implementation in progress. Phases 0–8 substantially complete.
|
||||
Phases 14a, 14b, 15a, 15b (partial), 15c (partial), 15d (partial), 15e, 16 substantially complete.
|
||||
**Last updated:** 2026-06-20 — Phase 16 unified button rendering; MC .ini skins as ONLY theme source; path-traversal fix.
|
||||
**Date:** 2026-06-12 (initial) · 2026-06-13 (rename + comprehensive review + audit fixes) · 2026-06-19 (bug fixes, standalone binaries, syntax highlighter, parity audit reconciliation) · 2026-06-20 (Phase 16)
|
||||
Phases 14a, 14b, 15a, 15b (partial), 15c (partial), 15d (partial), 15e, 16, 17 substantially complete.
|
||||
**Last updated:** 2026-06-20 — Phase 17 skin_dialog popup shell; 16/30+ dialogs still bypass render_popup (follow-up work).
|
||||
**Date:** 2026-06-12 (initial) · 2026-06-13 (rename + comprehensive review + audit fixes) · 2026-06-19 (bug fixes, standalone binaries, syntax highlighter, parity audit reconciliation) · 2026-06-20 (Phase 16, Phase 17)
|
||||
**Branch:** `0.2.4`
|
||||
**Decision authority:** User selected Option A (Pure Rust TLC) on 2026-06-12.
|
||||
**Scope:** Reimplement ALL of Midnight Commander (MC 4.8.33) in pure Rust.
|
||||
@@ -1413,6 +1413,8 @@ All 1108 existing tests pass unchanged.
|
||||
|
||||
## Changelog
|
||||
|
||||
- **2026-06-20** — **Phase 17 skin_dialog popup shell**: `src/filemanager/skin_dialog.rs::render()` migrated from bespoke `Clear`+`Block` (no shadow, square borders) to `terminal::popup::render_popup` (rounded borders + MC-matching drop shadow + centered layout). Skin dialog now matches the premium chrome of all 13 other TLC dialogs. Duplicate `centered_rect` helper deleted. New `render_drops_shadow_outside_popup` test asserts the bottom-right cell outside the popup carries `theme.shadow` background — validates MC's `tty_draw_box_shadow` at the dialog level. 1112 tests pass. **Follow-up work**: 16 dialogs still use `Clear`+`Block` directly (sort, compare, overwrite, filter, tree, encoding, connection, layout, owner, panel_options, pattern, confirm, config, permission, chattr, progress) and need the same migration.
|
||||
|
||||
- **2026-06-20** — **Phase 16 unified button rendering**: Three separate button rendering paths collapsed into one. New `widget::button::render_button` (normal `[ X ]`) + `render_default_button` (`[< X >]`) + `render_button_row` (variable count, auto-sized, centered). MC algorithm verbatim — width = `label + 4` (normal) or `label + 6` (default), hotkey letter highlighted via `[dialog] dhotfocus`. All 5 ops dialogs + the Dialog widget now route through this single function. Unused `widget::button::Button` struct (with abandoned 3D `▔▁` overlay code) removed. Section §16 added with full MC algorithm reference. 1108 tests pass.
|
||||
|
||||
- **2026-06-19** — **Comprehensive parity audit reconciliation**:
|
||||
|
||||
Reference in New Issue
Block a user