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