diff options
| author | Jeremy Rimpo <jeremy.rimpo@servermonkey.com> | 2018-05-08 19:24:02 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-05-08 19:24:02 -0500 |
| commit | 26b946a905cc1324d9588dcf6c621c0d26001e7b (patch) | |
| tree | cf604d51d8fe8a7b7bd7de29fb6b5ec81b0a9596 /src/downloadmanager.cpp | |
| parent | 5e6bb0a16e20b831e44f24fb633d9c951dd93440 (diff) | |
| parent | 11aa955d73bd58724b9fd0b05cc40ed8133db3f8 (diff) | |
Merge pull request #342 from Modorganizer2/Develop
Fix an issue with resuming a completed download
Diffstat (limited to 'src/downloadmanager.cpp')
| -rw-r--r-- | src/downloadmanager.cpp | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/downloadmanager.cpp b/src/downloadmanager.cpp index 2ab56fab..bfc4de3e 100644 --- a/src/downloadmanager.cpp +++ b/src/downloadmanager.cpp @@ -464,7 +464,10 @@ void DownloadManager::startDownload(QNetworkReply *reply, DownloadInfo *newDownl QCoreApplication::processEvents();
- if (newDownload->m_State != STATE_DOWNLOADING && reply->isFinished()) {
+ if (newDownload->m_State != STATE_DOWNLOADING &&
+ newDownload->m_State != STATE_READY &&
+ newDownload->m_State != STATE_FETCHINGMODINFO &&
+ reply->isFinished()) {
downloadFinished(indexByName(newDownload->m_FileName));
return;
}
@@ -499,7 +502,7 @@ void DownloadManager::addNXMDownload(const QString &url) for (DownloadInfo *download : m_ActiveDownloads) {
if (download->m_FileInfo->modID == nxmInfo.modId() && download->m_FileInfo->fileID == nxmInfo.fileId()) {
if (download->m_State == STATE_DOWNLOADING || download->m_State == STATE_PAUSED || download->m_State == STATE_STARTED) {
- qDebug("download requested is already started (mod: %s, file: %s)", qPrintable(download->m_FileInfo->modID),
+ qDebug("download requested is already started (mod: %s, file: %s)", qPrintable(QString(download->m_FileInfo->modID)),
qPrintable(download->m_FileInfo->fileName));
QMessageBox::information(nullptr, tr("Already Started"), tr("There is already a download started for this file (mod: %1, file: %2).")
@@ -690,6 +693,14 @@ void DownloadManager::resumeDownloadInt(int index) return;
}
DownloadInfo *info = m_ActiveDownloads[index];
+
+ // Check for finished download;
+ if (info->m_TotalSize <= info->m_Output.size()) {
+ setState(info, STATE_DOWNLOADING);
+ downloadFinished(index);
+ return;
+ }
+
if (info->isPausedState()) {
if ((info->m_Urls.size() == 0)
|| ((info->m_Urls.size() == 1) && (info->m_Urls[0].size() == 0))) {
|
