use QSharedPointer to manage FileDownloadTask