Showing the changes to libraries/script-engine/src/BatchLoader.cpp (1 of 2 files). Show all
Unified · Split
| @@ -17,9 +17,7 @@ · 16 unmodified lines | |||
| 17 | #include "BatchLoader.h" | 17 | #include "BatchLoader.h" |
| 18 | #include <NetworkAccessManager.h> | 18 | #include <NetworkAccessManager.h> |
| 19 | #include <SharedUtil.h> | 19 | #include <SharedUtil.h> |
| 20 | 20 | #include "ResourceManager.h" | |
| 21 | |||
| 22 | |||
| 23 | 21 | ||
| 24 | BatchLoader::BatchLoader(const QList<QUrl>& urls) | 22 | BatchLoader::BatchLoader(const QList<QUrl>& urls) |
| 25 | : QObject(), | 23 | : QObject(), |
| @@ -27,6 +25,7 @@ BatchLoader::BatchLoader(const QList<QUrl>& urls) · 1 unmodified line | |||
| 27 | _finished(false), | 25 | _finished(false), |
| 28 | _urls(urls.toSet()), | 26 | _urls(urls.toSet()), |
| 29 | _data() { | 27 | _data() { |
| 28 | qRegisterMetaType<QMap<QUrl, QString>>("QMap<QUrl, QString>"); | ||
| 30 | } | 29 | } |
| 31 | 30 | ||
| 32 | void BatchLoader::start() { | 31 | void BatchLoader::start() { |
| @@ -35,45 +34,63 @@ void BatchLoader::start() { · 2 unmodified lines | |||
| 35 | } | 34 | } |
| 36 | 35 | ||
| 37 | _started = true; | 36 | _started = true; |
| 38 | QNetworkAccessManager& networkAccessManager = NetworkAccessManager::getInstance(); | 37 | // QNetworkAccessManager& networkAccessManager = NetworkAccessManager::getInstance(); |
| 39 | for (QUrl url : _urls) { | 38 | for (QUrl url : _urls) { |
| 40 | if (url.scheme() == "http" || url.scheme() == "https" || url.scheme() == "ftp") { | 39 | auto request = ResourceManager::createResourceRequest(this, url); |
| 41 | QNetworkRequest request = QNetworkRequest(url); | 40 | if (!request) { |
| 42 | request.setHeader(QNetworkRequest::UserAgentHeader, HIGH_FIDELITY_USER_AGENT); | 41 | continue; |
| 43 | QNetworkReply* reply = networkAccessManager.get(request); | 42 | } |
| 44 | 43 | connect(request, &ResourceRequest::finished, [=]() { | |
| 45 | qCDebug(scriptengine) << "Downloading file at" << url; | 44 | if (request->getResult() == ResourceRequest::SUCCESS) { |
| 46 | 45 | _data.insert(url, request->moveData()); | |
| 47 | connect(reply, &QNetworkReply::finished, [=]() { | ||
| 48 | if (reply->error()) { | ||
| 49 | _data.insert(url, QString()); | ||
| 50 | } else { | ||
| 51 | _data.insert(url, reply->readAll()); | ||
| 52 | } | ||
| 53 | reply->deleteLater(); | ||
| 54 | checkFinished(); | ||
| 55 | }); | ||
| 56 | |||
| 57 | // If we end up being destroyed before the reply finishes, clean it up | ||
| 58 | connect(this, &QObject::destroyed, reply, &QObject::deleteLater); | ||
| 59 | |||
| 60 | } else { | ||
| 61 | #ifdef _WIN32 | ||
| 62 | QString fileName = url.toString(); | ||
| 63 | #else | ||
| 64 | QString fileName = url.toLocalFile(); | ||
| 65 | #endif | ||
| 66 | |||
| 67 | qCDebug(scriptengine) << "Reading file at " << fileName; | ||
| 68 | |||
| 69 | QFile scriptFile(fileName); | ||
| 70 | if (scriptFile.open(QFile::ReadOnly | QFile::Text)) { | ||
| 71 | QTextStream in(&scriptFile); | ||
| 72 | _data.insert(url, in.readAll()); | ||
| 73 | } else { | 46 | } else { |
| 74 | _data.insert(url, QString()); | 47 | _data.insert(url, QString()); |
| 75 | } | 48 | } |
| 76 | } | 49 | request->deleteLater(); |
| 50 | checkFinished(); | ||
| 51 | }); | ||
| 52 | |||
| 53 | qCDebug(scriptengine) << "Loading script at " << url; | ||
| 54 | |||
| 55 | request->send(); | ||
| 56 | |||
| 57 | // if (url.scheme() == "http" || url.scheme() == "https" || url.scheme() == "ftp") { | ||
| 58 | // QNetworkRequest request = QNetworkRequest(url); | ||
| 59 | // request.setHeader(QNetworkRequest::UserAgentHeader, HIGH_FIDELITY_USER_AGENT); | ||
| 60 | // QNetworkReply* reply = networkAccessManager.get(request); | ||
| 61 | // | ||
| 62 | // qCDebug(scriptengine) << "Downloading file at" << url; | ||
| 63 | // | ||
| 64 | // connect(reply, &QNetworkReply::finished, [=]() { | ||
| 65 | // if (reply->error()) { | ||
| 66 | // _data.insert(url, QString()); | ||
| 67 | // } else { | ||
| 68 | // _data.insert(url, reply->readAll()); | ||
| 69 | // } | ||
| 70 | // reply->deleteLater(); | ||
| 71 | // checkFinished(); | ||
| 72 | // }); | ||
| 73 | // | ||
| 74 | // // If we end up being destroyed before the reply finishes, clean it up | ||
| 75 | // connect(this, &QObject::destroyed, reply, &QObject::deleteLater); | ||
| 76 | // | ||
| 77 | // } else { | ||
| 78 | // #ifdef _WIN32 | ||
| 79 | // QString fileName = url.toString(); | ||
| 80 | // #else | ||
| 81 | // QString fileName = url.toLocalFile(); | ||
| 82 | // #endif | ||
| 83 | // | ||
| 84 | // qCDebug(scriptengine) << "Reading file at " << fileName; | ||
| 85 | // | ||
| 86 | // QFile scriptFile(fileName); | ||
| 87 | // if (scriptFile.open(QFile::ReadOnly | QFile::Text)) { | ||
| 88 | // QTextStream in(&scriptFile); | ||
| 89 | // _data.insert(url, in.readAll()); | ||
| 90 | // } else { | ||
| 91 | // _data.insert(url, QString()); | ||
| 92 | // } | ||
| 93 | // } | ||
| 77 | } | 94 | } |
| 78 | checkFinished(); | 95 | checkFinished(); |
| 79 | } | 96 | } |