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 | QString ScriptCache::getScript(const QUrl& url, ScriptUser* scriptUser, bool& isPending) { | 27 | QString ScriptCache::getScript(const QUrl& url, ScriptUser* scriptUser, bool& isPending) { |
| 28 | QString scriptContents; | 28 | QString scriptContents; |
| 29 | if (_scriptCache.contains(url)) { | 29 | if (_scriptCache.contains(url)) { |
| 30 | qDebug() << "Found script in cache:" << url.toString(); | ||
| 30 | scriptContents = _scriptCache[url]; | 31 | scriptContents = _scriptCache[url]; |
| 31 | scriptUser->scriptContentsAvailable(url, scriptContents); | 32 | scriptUser->scriptContentsAvailable(url, scriptContents); |
| 32 | isPending = false; | 33 | isPending = false; |
| 33 | } else { | 34 | } else { |
| 34 | isPending = true; | 35 | isPending = true; |
| 36 | bool alreadyWaiting = _scriptUsers.contains(url); | ||
| 35 | _scriptUsers.insert(url, scriptUser); | 37 | _scriptUsers.insert(url, scriptUser); |
| 36 | QNetworkAccessManager& networkAccessManager = NetworkAccessManager::getInstance(); | 38 | |
| 37 | QNetworkRequest networkRequest = QNetworkRequest(url); | 39 | if (alreadyWaiting) { |
| 38 | networkRequest.setHeader(QNetworkRequest::UserAgentHeader, HIGH_FIDELITY_USER_AGENT); | 40 | qDebug() << "Already downloading script at:" << url.toString(); |
| 39 | QNetworkReply* reply = networkAccessManager.get(networkRequest); | 41 | } else { |
| 40 | connect(reply, &QNetworkReply::finished, this, &ScriptCache::scriptDownloaded); | 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 | return scriptContents; | 51 | return scriptContents; |
| 43 | } | 52 | } |
| @@ -50,6 +59,7 @@ void ScriptCache::scriptDownloaded() { · 6 unmodified lines | |||
| 50 | 59 | ||
| 51 | if (reply->error() == QNetworkReply::NoError && reply->attribute(QNetworkRequest::HttpStatusCodeAttribute) == 200) { | 60 | if (reply->error() == QNetworkReply::NoError && reply->attribute(QNetworkRequest::HttpStatusCodeAttribute) == 200) { |
| 52 | _scriptCache[url] = reply->readAll(); | 61 | _scriptCache[url] = reply->readAll(); |
| 62 | qDebug() << "Done downloading script at:" << url.toString(); | ||
| 53 | 63 | ||
| 54 | foreach(ScriptUser* user, scriptUsers) { | 64 | foreach(ScriptUser* user, scriptUsers) { |
| 55 | user->scriptContentsAvailable(url, _scriptCache[url]); | 65 | user->scriptContentsAvailable(url, _scriptCache[url]); |