void GeoEngine::saveCachedTiles(QProgressBar* progressbar) { QNetworkDiskCache* cache = (QNetworkDiskCache*)(manager->cache()); QDirIterator it1(cache->cacheDirectory()+QString("http/")); int nbFiles = 0; while(it1.hasNext()) { nbFiles++; it1.next(); } QDirIterator it(cache->cacheDirectory()+QString("http/")); progressbar->setMaximum(nbFiles); progressbar->setMinimum(0); progressbar->show(); progressbar->raise(); int numFile=0; while(it.hasNext()) { progressbar->setValue(numFile++); it.next(); if(it.fileInfo().isFile()) { QNetworkCacheMetaData metaData = cache->fileMetaData(it.filePath()); QIODevice* data = cache->data(metaData.url()); if(data) { saveTileToDisk(metaData.url(),data->readAll()); delete data; } } } progressbar->hide(); }
QByteArray FileDownloader::data(const QUrl & url) { QNetworkDiskCache* cache = qobject_cast<QNetworkDiskCache*>(mNetworkManager->cache()); if (cache) { QIODevice* reader = cache->data(url); if (reader) return reader->readAll(); } return QByteArray(); }