1) You should connect the signals and slots before the relevant statements.
2) Also, you should use the login method with the username and password.
So, your code should look like this:
QString source = "ftp://ftp.myftpserver.com/directoryname/";
QFtp *ftp = new QFtp(this);
connect(ftp, SIGNAL(listInfo(QUrlInfo)), this, SLOT(processInfoFromFile(QUrlInfo)));
connect(ftp, SIGNAL(done(bool)), this, SLOT(finishThisProcess()));
ftp->connectToHost(source);
ftp->login(username, password);
ftp->list();