diff --git a/cockatrice/src/client/ui/picture_loader/picture_loader_worker.cpp b/cockatrice/src/client/ui/picture_loader/picture_loader_worker.cpp index 22bd39657..5829539cb 100644 --- a/cockatrice/src/client/ui/picture_loader/picture_loader_worker.cpp +++ b/cockatrice/src/client/ui/picture_loader/picture_loader_worker.cpp @@ -111,6 +111,14 @@ QNetworkReply *PictureLoaderWorker::makeRequest(const QUrl &url, PictureLoaderWo if (reply->error() == QNetworkReply::NoError) { worker->picDownloadFinished(reply); emit imageLoadSuccessful(url, worker); + + // If we hit a cached image, we get to make another request for free. + if (reply->attribute(QNetworkRequest::SourceIsFromCacheAttribute).toBool()) { + if (!requestLoadQueue.isEmpty()) { + auto request = requestLoadQueue.takeFirst(); + makeRequest(request.first, request.second); + } + } } else if (reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt() == 429) { qInfo() << "Too many requests."; } diff --git a/oracle/CMakeLists.txt b/oracle/CMakeLists.txt index 7fb9c25b9..645c43ba0 100644 --- a/oracle/CMakeLists.txt +++ b/oracle/CMakeLists.txt @@ -21,6 +21,7 @@ set(oracle_SOURCES ../cockatrice/src/game/cards/card_database_manager.cpp ../cockatrice/src/game/cards/card_info.cpp ../cockatrice/src/client/ui/picture_loader/picture_loader.cpp + ../cockatrice/src/client/ui/picture_loader/picture_loader_request_status_display_widget.cpp ../cockatrice/src/client/ui/picture_loader/picture_loader_status_bar.cpp ../cockatrice/src/client/ui/picture_loader/picture_loader_worker.cpp ../cockatrice/src/client/ui/picture_loader/picture_loader_worker_work.cpp