I'm currently working on cleaning up the VFS code.
It's a mess that evolved over the last 10 years; some parts are using KIO, some other Qt functions and a big factor is the support for a total custom virt:// filesystem that makes everything much more complicated.
Here are some ideas and notes mainly for myself (WIP):
* there are currently three implementations of the vfs class:
** normal_vfs for the local "file:/" filesystem
** ftp_vfs for ftp:// and other KIO protocls (smb:/, fish:/)
** virt_vfs for the virtual filesystem: list of files which are only references to real files. Preserved even when restarting Krusader. Used at least for bookmarks, locate, and searchdialog
* big question is what to do with virt_vfs. Dumping it is probably not possible without reworking all parts that are using it. But I hope I can simplify huge parts of it.
Maybe to remove (?):
* merging normal_vfs with ftp_vfs
* preservincopyjob has no real purpose
* Queue: a list dialog for KIO jobs? Is somebody really using this? Nowadays every DE has it's own one
* virtualcopyjob is not even used in virt_vfs!? Only with queue
These are all random thought for the record. Feel free to comment if you have own ideas, thoughts or you think I'm on the wrong track!
TODOs:
* abstractthreadjob: keep for now
* ftp_vfs: merge with normal_vfs
* kiojobwrapper: remove in the long run
* kr7zencryptionchecker: keep
* krarchhandler: keep
* krpermhandler: keep for nowDONE:
* krquery: keep* removed: Queue/*, kiojobwrapper, virtualcopyjob, preservingcopyjob
* krvfshandler: keep; rename; move all static functions here
** merged ftp_vfs with normal_vfs: merge with ftp_vfs to default_vfs
TODOs:
* packjob: keep* finish cleaning up panelfunc
* preservingcopyjob: remove* rework/cleanup vfs and default_vfs
* vfile: keep,* krvfshandler: rename; maybe make it kfile/qfileconnect to vfs
* vfilecontainer: merge with vfs
* vfs: keep
* virt_vfs: keep, rework?
* virtualcopyjob: remove in the long run
and
* panelfunc: move fs operations to somewhere else
* everything in Queue/: remove
* start re-adding a job queue