summaryrefslogtreecommitdiff
path: root/src/downloadmanager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/downloadmanager.cpp')
-rw-r--r--src/downloadmanager.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/downloadmanager.cpp b/src/downloadmanager.cpp
index ca6744aa..8c2615ea 100644
--- a/src/downloadmanager.cpp
+++ b/src/downloadmanager.cpp
@@ -283,6 +283,7 @@ bool DownloadManager::addDownload(const QStringList &URLs,
return addDownload(m_NexusInterface->getAccessManager()->get(request), URLs, fileName, modID, fileID, nexusInfo);
}
+
bool DownloadManager::addDownload(QNetworkReply *reply, const QStringList &URLs, const QString &fileName,
int modID, int fileID, const NexusInfo &nexusInfo)
{
@@ -1034,6 +1035,8 @@ void DownloadManager::nxmDownloadURLsAvailable(int modID, int fileID, QVariant u
std::sort(resultList.begin(), resultList.end(), boost::bind(&DownloadManager::ServerByPreference, m_PreferredServers, _1, _2));
+ info.m_DownloadMap = resultList;
+
QStringList URLs;
foreach (const QVariant &server, resultList) {
@@ -1121,6 +1124,17 @@ void DownloadManager::downloadFinished()
createMetaFile(info);
emit update(index);
} else {
+
+ QString url = info->m_Urls[info->m_CurrentUrl];
+ foreach (const QVariant &server, info->m_NexusInfo.m_DownloadMap) {
+ QVariantMap serverMap = server.toMap();
+ if (serverMap["URI"].toString() == url) {
+ int deltaTime = info->m_StartTime.secsTo(QTime::currentTime());
+ emit downloadSpeed(serverMap["Name"].toString(), info->m_TotalSize / deltaTime);
+ break;
+ }
+ }
+
setState(info, STATE_FETCHINGMODINFO); // need to set this state before changing the file name, otherwise .unfinished is appended
QString newName = getFileNameFromNetworkReply(reply);