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
- preservingcopyjob 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!
DONE:
- removed: Queue/*, kiojobwrapper, virtualcopyjob, preservingcopyjob
- merged ftp_vfs with normal_vfs to default_vfs
- rework of vfs, default_vfs and virt_vfs
- cleaned up panelfunc
- krvfshandler: connect to vfs instances
- added a job queue replacement: JobMan
- New own SizeCalculation class
TODOs:
vfilecontainer: merge with vfs
Eternal TODO:
- testing, testing and testing