void DownloadManager::downloadFinish(QNetworkReply *reply) { QByteArray data = reply->readAll(); reply->deleteLater(); if (downloadsMap.contains(reply->request().url().toString())) { Download *download = downloadsMap.value(reply->request().url().toString()); int downloadType = download->getType(); if (downloadType == Download::pageType) { QString dataString(data); emit downloadPageFinish(download->getUrlString(), dataString, download->getPage()); } else if (downloadType == Download::fileInfoType) { QString location = reply->rawHeader(QByteArray("Location")); QString fileName = location.split("/").last(); addFileDownload(location,fileName); } else if (downloadType == Download::fileType) { emit downloadFileFinish(download->getUrlString(), data, download->getFileName()); } downloadsManagerMap.remove(download->getUrlString()); downloadsMap.remove(reply->request().url().toString()); updateDownloads(); } }