MapViewTileProviderBase add cacheDir()
This commit is contained in:
@@ -79,7 +79,7 @@ void MapViewTileCache::tileProviderChanged() {
|
||||
cache_dir.setPath(cache_root);
|
||||
auto * provider = parent->downloader->provider;
|
||||
if (provider) {
|
||||
cache_dir.setPath(cache_root + "/" + provider->name());
|
||||
cache_dir.setPath(cache_root + "/" + provider->cacheDir());
|
||||
}
|
||||
qDebug() << "[MapViewTileCache] Cache dir" << cache_dir.absolutePath();
|
||||
if (!cache_dir.exists()) cache_dir.mkpath(".");
|
||||
|
||||
@@ -50,11 +50,13 @@ void MapViewTileDownloader::clearQueue() {
|
||||
void MapViewTileDownloader::setTileProvider(MapViewTileProviderBase * p) {
|
||||
if (provider) {
|
||||
disconnect(provider, &MapViewTileProviderBase::tileReady, this, &MapViewTileDownloader::tileReady);
|
||||
disconnect(provider, &MapViewTileProviderBase::parametersChanged, this, &MapViewTileDownloader::parametersChanged);
|
||||
provider->deleteLater();
|
||||
}
|
||||
provider = p;
|
||||
if (provider) {
|
||||
connect(provider, &MapViewTileProviderBase::tileReady, this, &MapViewTileDownloader::tileReady);
|
||||
connect(provider, &MapViewTileProviderBase::parametersChanged, this, &MapViewTileDownloader::parametersChanged);
|
||||
}
|
||||
parent->cache->tileProviderChanged();
|
||||
}
|
||||
@@ -75,6 +77,11 @@ void MapViewTileDownloader::tileReady(OSM::TileIndex index, QPixmap pm) {
|
||||
}
|
||||
|
||||
|
||||
void MapViewTileDownloader::parametersChanged() {
|
||||
parent->cache->tileProviderChanged();
|
||||
}
|
||||
|
||||
|
||||
void MapViewTileDownloader::run() {
|
||||
while (!isInterruptionRequested()) {
|
||||
cond_mutex.lock();
|
||||
|
||||
@@ -65,6 +65,7 @@ public slots:
|
||||
|
||||
private slots:
|
||||
void tileReady(OSM::TileIndex index, QPixmap pm);
|
||||
void parametersChanged();
|
||||
|
||||
signals:
|
||||
void tileDone();
|
||||
|
||||
@@ -3,11 +3,17 @@
|
||||
|
||||
void MapViewTileProviderBase::setParameters(const PIValueTree & vt) {
|
||||
parameters.applyValues(vt);
|
||||
applyParameters();
|
||||
applyParametersIntenal();
|
||||
}
|
||||
|
||||
|
||||
void MapViewTileProviderBase::initParameters(const PIValueTree & vt) {
|
||||
parameters = vt;
|
||||
applyParameters();
|
||||
applyParametersIntenal();
|
||||
}
|
||||
|
||||
|
||||
void MapViewTileProviderBase::applyParametersIntenal() {
|
||||
applyParameters();
|
||||
emit parametersChanged();
|
||||
}
|
||||
|
||||
@@ -40,6 +40,7 @@ public:
|
||||
virtual QString name() const = 0;
|
||||
virtual bool requestTile(OSM::TileIndex index) = 0;
|
||||
virtual QSize tileSize() = 0;
|
||||
virtual QString cacheDir() const { return name(); }
|
||||
|
||||
protected:
|
||||
void initParameters(const PIValueTree & vt);
|
||||
@@ -47,10 +48,12 @@ protected:
|
||||
virtual void applyParameters() {}
|
||||
|
||||
private:
|
||||
void applyParametersIntenal();
|
||||
PIValueTree parameters;
|
||||
|
||||
signals:
|
||||
void tileReady(OSM::TileIndex index, QPixmap pm);
|
||||
void parametersChanged();
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -58,6 +58,11 @@ QSize MapViewTileProvider_MapTiler::tileSize() {
|
||||
}
|
||||
|
||||
|
||||
QString MapViewTileProvider_MapTiler::cacheDir() const {
|
||||
return name() + "/" + tileset;
|
||||
}
|
||||
|
||||
|
||||
void MapViewTileProvider_MapTiler::applyParameters() {
|
||||
url = PI2QString(getParameters().childValue("url").toString());
|
||||
key = PI2QString(getParameters().childValue("key").toString());
|
||||
|
||||
@@ -35,6 +35,7 @@ public:
|
||||
QString name() const override;
|
||||
bool requestTile(OSM::TileIndex index) override;
|
||||
QSize tileSize() override;
|
||||
QString cacheDir() const override;
|
||||
|
||||
protected:
|
||||
void applyParameters() override;
|
||||
|
||||
Reference in New Issue
Block a user