diff options
author | Petr Mrázek <peterix@gmail.com> | 2017-04-30 02:54:37 +0200 |
---|---|---|
committer | Petr Mrázek <peterix@gmail.com> | 2017-04-30 02:54:37 +0200 |
commit | 794102b32cb9b9c0ddb0c8268c572acb256dd6ba (patch) | |
tree | 86aff77c02ee18479cb18da035ae70d0a5c8e758 /api/logic/net/Download.cpp | |
parent | 1be99b075ab1911e65a165e3b47513a3a8e290f3 (diff) | |
download | MultiMC-794102b32cb9b9c0ddb0c8268c572acb256dd6ba.tar MultiMC-794102b32cb9b9c0ddb0c8268c572acb256dd6ba.tar.gz MultiMC-794102b32cb9b9c0ddb0c8268c572acb256dd6ba.tar.lz MultiMC-794102b32cb9b9c0ddb0c8268c572acb256dd6ba.tar.xz MultiMC-794102b32cb9b9c0ddb0c8268c572acb256dd6ba.zip |
NOISSUE less jumpy download progress bars and redirect URL fix
Diffstat (limited to 'api/logic/net/Download.cpp')
-rw-r--r-- | api/logic/net/Download.cpp | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/api/logic/net/Download.cpp b/api/logic/net/Download.cpp index b346d5e0..97b03ac2 100644 --- a/api/logic/net/Download.cpp +++ b/api/logic/net/Download.cpp @@ -106,6 +106,17 @@ void Download::executeTask() void Download::downloadProgress(qint64 bytesReceived, qint64 bytesTotal) { + // FIXME: ignore unknown size. for now. + if(bytesTotal == -1) + { + return; + } + // FIXME: ignore redirects... for now. + auto redirectURL = getRedirect(); + if(!redirectURL.isEmpty()) + { + return; + } m_progressTotal = bytesTotal; m_progress = bytesReceived; emit progress(bytesReceived, bytesTotal); @@ -134,7 +145,7 @@ void Download::downloadError(QNetworkReply::NetworkError error) } } -bool Download::handleRedirect() +QString Download::getRedirect() { QVariant redirect = m_reply->header(QNetworkRequest::LocationHeader); QString redirectURL; @@ -151,10 +162,15 @@ bool Download::handleRedirect() redirectURL = m_reply->url().scheme() + ":" + data; } } + return redirectURL; +} + +bool Download::handleRedirect() +{ + auto redirectURL = getRedirect(); if (!redirectURL.isEmpty()) { - m_url = QUrl(redirect.toString()); - qDebug() << "Following redirect to " << m_url.toString(); + m_url = QUrl(redirectURL); start(); return true; } |