I've been asked to see about adding a few features to FileZilla (and submitting them back to the project of course).
I've downloaded the source and I have no clue how this stuff is organized.
I know what features we want added (queue ETA, queue statistics, immediately change to newly created directory, queue completion notification, adapative bandwith usage) and have a fair idea how to implement them (I've done it with various command line ftp clients). These features would be useful for people like myself that do large volume transfers (30GB/day isn't unheard of).
Are there any documents/sites which explain how the application is organized or any 'jump-right-in' suggestions? While I don't mind just randomly breaking stuff until I figure it out , if there are easier ways I'd love hear about them before I doing it the hard way.
Jumping right in.
Moderator: Project members
Basically the FileZilla code is divided into two parts: The FTP engine and the interface.
However, FileZilla 2.2.9 might be the last version with the old code base. I'm currently working on FileZilla 3 which will replace the 2.x branch.
FZ3 is written from scratch with a more clean separation between engine and interface. It's currently in its early alpha stages and a lot of things may still change. My suggestion would be to wait a little bit until the code structure of FileZilla 3 stabilises and then implement the suggested features in FZ3.
This can be done entirely in the interface, perhaps entirely in CQueueCtrlqueue ETA, queue statistics, queue completion notification
Very difficult, both engine and interface would have to be modified imo.immediately change to newly created directory
Can be done in the engine, take a look at the existing speed limiting code in CMainThread, CControlSocket, CFtpControlSocket, CTransferSocket.adapative bandwith usage
However, FileZilla 2.2.9 might be the last version with the old code base. I'm currently working on FileZilla 3 which will replace the 2.x branch.
FZ3 is written from scratch with a more clean separation between engine and interface. It's currently in its early alpha stages and a lot of things may still change. My suggestion would be to wait a little bit until the code structure of FileZilla 3 stabilises and then implement the suggested features in FZ3.