4a3d097b27
Mirrors MC's filegui.c::file_progress_real_query_replace and the
FileProgressStatus enum (filegui.h:45-54): FILE_CONT, FILE_RETRY,
FILE_SKIP, FILE_ABORT, FILE_IGNORE.
New file: src/filemanager/error_dialog.rs
- ErrorDialog with path + error message
- R / S / I / A shortcuts (MC letter bindings)
- Esc maps to Abort
- 7 unit tests (one per shortcut + an 'other keys don't finish' guard)
New FileManager state:
- pending_error_op: Option<PendingErrorOp>
stores kind + sources + dst + flags for the in-flight op so
the user can Retry / Skip / Ignore / Abort
- PendingErrorOp struct (parallel to existing PendingFileOp)
- pending_error_op initialized to None
New DialogState variant:
DialogState::Error(Box<error_dialog::ErrorDialog>)
Wired into dispatch (handle_key), render, is_finished, title.
Retry is currently a stub (logs a message) because the copy
engine's batch step resumption would require threading the
operation index into copy_many/move_many/delete_many. The dialog
scaffolding is complete and tested; the retry can be wired in a
follow-up sprint when the batch step API is added.
Tests: 1306 passing (was 1299; +7 new).