QGeoTileCache::QGeoTileCache(const QString &directory, QObject *parent) : QObject(parent), directory_(directory), minTextureUsage_(0), extraTextureUsage_(0) { qRegisterMetaType<QGeoTileSpec>(); qRegisterMetaType<QList<QGeoTileSpec> >(); qRegisterMetaType<QSet<QGeoTileSpec> >(); // We keep default values here so that they are in one place // rather than in each individual plugin (the plugins can // of course override them) if (directory_.isEmpty()) { QString dirname = QLatin1String(".tilecache"); QDir home = QDir::home(); if (!home.exists(dirname)) home.mkdir(dirname); directory_ = home.filePath(dirname); } // default values setMaxDiskUsage(20 * 1024 * 1024); setMaxMemoryUsage(3 * 1024 * 1024); setExtraTextureUsage(6 * 1024 * 1024); loadTiles(); }
QGeoTileCache::QGeoTileCache(const QString &directory, QObject *parent) : QObject(parent), directory_(directory), minTextureUsage_(0), extraTextureUsage_(0) { qRegisterMetaType<QGeoTileSpec>(); qRegisterMetaType<QList<QGeoTileSpec> >(); qRegisterMetaType<QSet<QGeoTileSpec> >(); // We keep default values here so that they are in one place // rather than in each individual plugin (the plugins can // of course override them) const QString basePath = QStandardPaths::writableLocation(QStandardPaths::GenericCacheLocation) + QLatin1String("/QtLocation"); // delete old tiles from QtLocation 5.4 or prior // TODO Remove cache cleanup in Qt 6 QDir baseDir(basePath); if (baseDir.exists()) { const QStringList oldCacheFiles = baseDir.entryList(QDir::Files); foreach (const QString& file, oldCacheFiles) baseDir.remove(file); } if (directory_.isEmpty()) { directory_ = basePath; qWarning() << "Plugin uses uninitialized directory for QGeoTileCache" " which will was deleted during startup"; } QDir::root().mkpath(directory_); // default values setMaxDiskUsage(20 * 1024 * 1024); setMaxMemoryUsage(3 * 1024 * 1024); setExtraTextureUsage(6 * 1024 * 1024); loadTiles(); }