Skip to content

feat: add dual-pane file management - #216

Merged
nextestudios merged 1 commit into
mainfrom
feature/56-dual-pane
Sep 27, 2026
Merged

nextestudios merged 1 commit into
mainfrom
feature/56-dual-pane

Conversation

@nextestudios

Copy link
Copy Markdown
Owner

Summary

  • Two panes (Menu → "Dois painéis: ligado/desligado", saved in AppSettings.DualPane): the left pane is the active tab (tabs stay on the left), the right pane is a second PaneState with its own location, history, marks, focus and search. Browser is always the focused pane, so open/back/mark/search/menus work unchanged in either pane.
  • Switching with a new InputAction.SwitchPane: L3 (left-stick click, previously unused — no conflict with L1/R1 top bar, L2/R2 tabs, R3 view) and Tab on the keyboard; also clicking the dimmed pane. Switching never changes marks, focus or starts an operation. With the right pane focused, L2/R2 page the list and tab actions move focus back to the left. Footer hint "Painel direito/esquerdo"; Narrator context starts with the pane name.
  • Unmistakable active pane: the active pane uses the main list/grid in its own column, outlined in cyan with a "PAINEL … · ATIVO" title (top bar shows its path); the other pane (new PaneView) is dimmed with its path and "L3 ou Tab para ativar". Details panel is hidden in dual mode.
  • Actions → Copiar/Mover para o outro painel (quick tiles, arrow shows direction) for the focused item or marked items, and Extrair para o outro painel for archives on disk and inside the archive browser (all or marked entries). They reuse ConfirmTransfer/BeginExtraction, so source and destination are shown before running; unavailable with a reason when the other pane isn't a disk folder or both show the same folder. File ops, extraction, batch rename and disk images now refresh every pane showing the affected folder.
  • Responsive: SetDualPaneFits from the window — single pane on the Compact tier (handhelds) or below 1200 px; the setting is kept.
  • Docs: GUIDE pair, README pair, CHANGELOG pair, input-and-focus (L3), TESTING, ui-redesign rows; screens 2h-dual-pane / 2i-dual-pane-right.

Tests

  • CI: DualPaneJourneyTests — journey C (copy/move/extract to the other pane with source/destination, switching keeps marks and starts nothing, narrow screen falls back to one pane) and the same-folder guard.
  • Manual (docs/TESTING.md "Dois painéis (feat: add dual-pane file management #56)", not hardware-validated): TV distance legibility, L3 on real controllers, Steam Deck single pane, mouse, Narrator.

Closes #56

🤖 Generated with Claude Code

Menu -> "Dois painéis" shows two panes side by side: the left one is the
active tab, the right one its own PaneState with location, history, marks
and focus. L3 (Tab) or a click switches the active pane without touching
marks or starting anything. Actions -> Copy/Move/Extract to the other pane
show source and destination before running, and every pane showing the
destination refreshes afterwards. Handhelds and narrow windows keep one pane.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@nextestudios
nextestudios merged commit eecb970 into main Sep 27, 2026
1 check passed
@nextestudios
nextestudios deleted the feature/56-dual-pane branch September 27, 2026 23:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: add dual-pane file management

1 participant