Commit Graph
24 Commits
Author SHA1 Message Date
Christian Visintin 0025b87b0f fix: sync browsing when entering a directory from filtered/fuzzy view
Closes #382
2026-04-19 01:54:46 +05:30
Christian Visintin f6d35f1eea refactor: FileTransferActivity pane-agnostic dispatch (#386)
Comprehensive design for incremental refactoring of the 13k-line
FileTransferActivity god-struct using a unified Pane abstraction.
Detailed step-by-step plan covering 6 phases: split monoliths,
error handling, Pane struct, action dedup, session split, view reorg.
Extract 26 popup components from the monolithic 1,868-line popups.rs
into 20 individual files under popups/. Each file contains one or two
related components with their own imports. The popups.rs module file
now contains only module declarations and re-exports.
Replace 8 panic!() calls with error!() logging and early returns/fallthrough.
These panics documented invariants (e.g. "this tab can't do X") but would crash
the app if somehow triggered. Error logging is safer and more resilient.
Replace raw FileExplorer fields in Browser with Pane structs that bundle
the explorer and connected state. Move host_bridge_connected and
remote_connected from FileTransferActivity into the panes. Add navigation
API (fs_pane, opposite_pane, is_find_tab) for future unification tasks.
Rename private get_selected_file to get_selected_file_by_id and add three
new unified methods (get_selected_entries, get_selected_file, is_selected_one)
that dispatch based on self.browser.tab(). Old per-tab methods are kept for
now until their callers are migrated in subsequent tasks.
Collapse _local_/_remote_ action method pairs (mkdir, delete, symlink,
chmod, rename, copy) into unified methods that branch internally on
is_local_tab(). This halves the number of action methods and simplifies
the update.rs dispatch logic. Also unifies ShowFileInfoPopup and
ShowChmodPopup dispatching to use get_selected_entries().
Move `host_bridge` and `client` filesystem fields from FileTransferActivity
into the Pane struct, enabling tab-agnostic dispatch via `fs_pane()`/
`fs_pane_mut()`. This eliminates most `is_local_tab()` branching across
15+ action files.
Key changes:
- Add `fs: Box<dyn HostBridge>` to Pane, remove from FileTransferActivity
- Replace per-side method pairs with unified pane-dispatched methods
- Unify navigation (changedir, reload, scan, file_exists, has_file_changed)
- Replace 147-line popup if/else chain with data-driven priority table
- Replace assert!/panic!/unreachable! with proper error handling
- Fix typo "filetransfer_activiy" across ~29 files
- Add unit tests for Pane

Net result: -473 lines, single code path for most file operations.
2026-04-19 01:54:46 +05:30
Christian Visintin 75943f2b93 feat: Changed file overwrite behaviour (#366)
Linux / build (push) Has been cancelled
MacOS / build (push) Has been cancelled
Windows / build (push) Has been cancelled
Now the user can choose for each file whether to overwrite, skip or overwrite all/skip all.

closes #335
2025-11-09 19:00:17 +01:00
Christian Visintin ec75ae1486 feat: 132 queuing transfers (#332)
the logic of selecting files has been extended!
From now on selecting file will put the files into a transfer queue, which is shown on the bottom panel.
When a file is selected the file is added to the queue with a destination path, which is the **current other explorer path at the moment of selection.
It is possible to navigate to the transfer queue by using `P` and pressing `ENTER` on a file will remove it from the transfer queue.Other commands will work as well on the transfer queue, like `COPY`, `MOVE`, `DELETE`, `RENAME`.

closes #132
2025-03-23 14:36:13 +01:00
Christian Visintin aab266a661 285 feature request multi host (#293) 2024-10-07 16:27:45 +02:00
Christian Visintin fc68e2621b feat: it is now possible to cancel find command; show find progress (#284) 2024-10-03 11:31:16 +02:00
Christian Visintin b2a8a3041c 249 feature request better search results (#282)
Linux / build (push) Has been cancelled
MacOS / build (push) Has been cancelled
Windows / build (push) Has been cancelled
* feat: issue 249 - fuzzy search replaced the old find explorer

* fix: forgot to upload file

* fix: removed debug
2024-10-02 17:45:48 +02:00
veeso c5eeae74b7 fmt 2023-05-09 15:40:21 +02:00
veeso 4d5f3a6b63 lint 2023-02-11 12:23:56 +01:00
veeso 0057a657d2 removed license headers 2022-06-09 14:28:02 +02:00
veeso ec4daf8e25 remotefs 0.2.0 2022-01-06 10:44:34 +01:00
veeso e047179ea0 Remove pending transfer with storage (use action) 2022-01-06 10:44:34 +01:00
veeso df7a4381c4 Removed filetransfer module; migrated to remotefs crate 2022-01-06 10:44:34 +01:00
veeso 696e3ae582 Rust 2021 2022-01-06 10:44:34 +01:00
veeso bcc6fcd2e7 Added file replace prompt also for 'Many' 2021-09-25 20:18:50 +02:00
veeso 06ffbaa2f4 Option: prompt user when about to replace an existing file caused by a file transfer 2021-09-19 11:18:52 +02:00
veeso ca50bddc56 Merge branch '0.5.1' into 0.6.0 2021-06-21 18:22:19 +02:00
veeso 48483a5c99 Unique function to send and receive files in session.rs via TransferPayload. Fixed transfer size when sending multiple entries 2021-06-18 13:02:04 +02:00
veeso d981b77ed7 Working on open 2021-06-10 22:36:29 +02:00
veeso 4e50038b41 Open file with 2021-06-10 12:14:09 +02:00
veeso 2c64cd5cce Changed Multi variant to Many 2021-05-15 17:46:29 +02:00
veeso dd00e1f55a Selection help; Fixed find actions for selections 2021-05-15 17:20:06 +02:00
veeso 2b3acee97c Handle file selections in activity 2021-05-15 17:03:44 +02:00
veeso 300256b196 Changed activity paths 2021-05-08 19:28:47 +02:00