summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvo van Dongen <info@ivovandongen.nl>2017-05-11 13:10:32 +0300
committerIvo van Dongen <ivovandongen@users.noreply.github.com>2017-05-12 14:55:40 +0300
commit6b0e0a905516acf17b7da29c58ac009c9f012858 (patch)
tree733473b686eb87f7708010a5f2311bd3d3075e07
parent85cb04be22e8d996d3d3447a252ed936eb6f3659 (diff)
downloadqtlocation-mapboxgl-6b0e0a905516acf17b7da29c58ac009c9f012858.tar.gz
[core] allow filesource url transform reset
-rw-r--r--platform/default/default_file_source.cpp16
1 files changed, 10 insertions, 6 deletions
diff --git a/platform/default/default_file_source.cpp b/platform/default/default_file_source.cpp
index 27c3950e2a..7db0b85461 100644
--- a/platform/default/default_file_source.cpp
+++ b/platform/default/default_file_source.cpp
@@ -200,12 +200,16 @@ std::string DefaultFileSource::getAccessToken() const {
}
void DefaultFileSource::setResourceTransform(std::function<std::string(Resource::Kind, std::string&&)> transform) {
- auto loop = util::RunLoop::Get();
- thread->invoke(&Impl::setResourceTransform, [loop, transform](Resource::Kind kind_, std::string&& url_, auto callback_) {
- return loop->invokeWithCallback([transform](Resource::Kind kind, std::string&& url, auto callback) {
- callback(transform(kind, std::move(url)));
- }, kind_, std::move(url_), callback_);
- });
+ if (transform) {
+ auto loop = util::RunLoop::Get();
+ thread->invoke(&Impl::setResourceTransform, [loop, transform](Resource::Kind kind_, std::string&& url_, auto callback_) {
+ return loop->invokeWithCallback([transform](Resource::Kind kind, std::string&& url, auto callback) {
+ callback(transform(kind, std::move(url)));
+ }, kind_, std::move(url_), callback_);
+ });
+ } else {
+ thread->invoke(&Impl::setResourceTransform, nullptr);
+ }
}
std::unique_ptr<AsyncRequest> DefaultFileSource::request(const Resource& resource, Callback callback) {