Showing the changes to libraries/script-engine/src/ScriptCache.cpp (1 of 2 files). Show all
Unified · Split
| @@ -27,17 +27,26 @@ ScriptCache::ScriptCache(QObject* parent) { · 26 unmodified lines | ||
| 27 | 27 | QString ScriptCache::getScript(const QUrl& url, ScriptUser* scriptUser, bool& isPending) { |
| 28 | 28 | QString scriptContents; |
| 29 | 29 | if (_scriptCache.contains(url)) { |
| 30 | + qDebug() << "Found script in cache:" << url.toString(); | |
| 30 | 31 | scriptContents = _scriptCache[url]; |
| 31 | 32 | scriptUser->scriptContentsAvailable(url, scriptContents); |
| 32 | 33 | isPending = false; |
| 33 | 34 | } else { |
| 34 | 35 | isPending = true; |
| 36 | + bool alreadyWaiting = _scriptUsers.contains(url); | |
| 35 | 37 | _scriptUsers.insert(url, scriptUser); |
| 36 | − QNetworkAccessManager& networkAccessManager = NetworkAccessManager::getInstance(); | |
| 37 | − QNetworkRequest networkRequest = QNetworkRequest(url); | |
| 38 | − networkRequest.setHeader(QNetworkRequest::UserAgentHeader, HIGH_FIDELITY_USER_AGENT); | |
| 39 | − QNetworkReply* reply = networkAccessManager.get(networkRequest); | |
| 40 | − connect(reply, &QNetworkReply::finished, this, &ScriptCache::scriptDownloaded); | |
| 38 | + | |
| 39 | + if (alreadyWaiting) { | |
| 40 | + qDebug() << "Already downloading script at:" << url.toString(); | |
| 41 | + } else { | |
| 42 | + QNetworkAccessManager& networkAccessManager = NetworkAccessManager::getInstance(); | |
| 43 | + QNetworkRequest networkRequest = QNetworkRequest(url); | |
| 44 | + networkRequest.setHeader(QNetworkRequest::UserAgentHeader, HIGH_FIDELITY_USER_AGENT); | |
| 45 | + | |
| 46 | + qDebug() << "Downloading script at:" << url.toString(); | |
| 47 | + QNetworkReply* reply = networkAccessManager.get(networkRequest); | |
| 48 | + connect(reply, &QNetworkReply::finished, this, &ScriptCache::scriptDownloaded); | |
| 49 | + } | |
| 41 | 50 | } |
| 42 | 51 | return scriptContents; |
| 43 | 52 | } |
| @@ -50,6 +59,7 @@ void ScriptCache::scriptDownloaded() { · 6 unmodified lines | ||
| 50 | 59 | |
| 51 | 60 | if (reply->error() == QNetworkReply::NoError && reply->attribute(QNetworkRequest::HttpStatusCodeAttribute) == 200) { |
| 52 | 61 | _scriptCache[url] = reply->readAll(); |
| 62 | + qDebug() << "Done downloading script at:" << url.toString(); | |
| 53 | 63 | |
| 54 | 64 | foreach(ScriptUser* user, scriptUsers) { |
| 55 | 65 | user->scriptContentsAvailable(url, _scriptCache[url]); |