diff --git a/src/common/NetworkPrivate.cpp b/src/common/NetworkPrivate.cpp index 91e03ef44..6f78a58e1 100644 --- a/src/common/NetworkPrivate.cpp +++ b/src/common/NetworkPrivate.cpp @@ -47,18 +47,20 @@ QString NetworkData::getHash() return this->hash_; } -void NetworkData::writeToCache(const QByteArray &bytes) +void writeToCache(const std::shared_ptr &data, + const QByteArray &bytes) { - if (this->useQuickLoadCache_) + if (data->useQuickLoadCache_) { - QFile cachedFile(getPaths()->cacheDirectory() + "/" + this->getHash()); + QtConcurrent::run([data, bytes] { + QFile cachedFile(getPaths()->cacheDirectory() + "/" + + data->getHash()); - if (cachedFile.open(QIODevice::WriteOnly)) - { - cachedFile.write(bytes); - - cachedFile.close(); - } + if (cachedFile.open(QIODevice::WriteOnly)) + { + cachedFile.write(bytes); + } + }); } } @@ -134,7 +136,7 @@ void loadUncached(const std::shared_ptr &data) } QByteArray bytes = reply->readAll(); - data->writeToCache(bytes); + writeToCache(data, bytes); NetworkResult result(bytes); diff --git a/src/common/NetworkPrivate.hpp b/src/common/NetworkPrivate.hpp index 68980f730..dca19ff4c 100644 --- a/src/common/NetworkPrivate.hpp +++ b/src/common/NetworkPrivate.hpp @@ -53,8 +53,6 @@ struct NetworkData { QString getHash(); - void writeToCache(const QByteArray &bytes); - private: QString hash_; };