diff --git a/src/networkaccessmanagerfactory.cpp b/src/networkaccessmanagerfactory.cpp index 5581f33..6aa2399 100644 --- a/src/networkaccessmanagerfactory.cpp +++ b/src/networkaccessmanagerfactory.cpp @@ -14,19 +14,16 @@ /* Configure caching for files downloaded from Internet by QML (e.g. os_list.json and icons) */ NetworkAccessManagerFactory::NetworkAccessManagerFactory() + : _nr(0) { - _c = new QNetworkDiskCache(this); - _c->setCacheDirectory(QStandardPaths::writableLocation(QStandardPaths::CacheLocation)+QDir::separator()+"oslistcache"); - /* Only cache images and not the .json */ - //_c->remove(QUrl(OSLIST_URL)); - - /* Clear all for now as we do not know any potential subitems_url in advance */ - _c->clear(); } QNetworkAccessManager *NetworkAccessManagerFactory::create(QObject *parent) { QNetworkAccessManager *nam = new QNetworkAccessManager(parent); - nam->setCache(_c); + auto c = new QNetworkDiskCache(nam); + c->setCacheDirectory(QStandardPaths::writableLocation(QStandardPaths::CacheLocation)+QDir::separator()+"oslistcache"+QString::number(_nr++)); + c->clear(); + nam->setCache(c); return nam; } diff --git a/src/networkaccessmanagerfactory.h b/src/networkaccessmanagerfactory.h index fbae7e5..ad44510 100644 --- a/src/networkaccessmanagerfactory.h +++ b/src/networkaccessmanagerfactory.h @@ -10,14 +10,14 @@ class QNetworkDiskCache; -class NetworkAccessManagerFactory : public QObject, public QQmlNetworkAccessManagerFactory +class NetworkAccessManagerFactory : public QQmlNetworkAccessManagerFactory { public: NetworkAccessManagerFactory(); virtual QNetworkAccessManager *create(QObject *parent); protected: - QNetworkDiskCache *_c; + int _nr; }; #endif // NETWORKACCESSMANAGERFACTORY_H