summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Firebaugh <john.firebaugh@gmail.com>2016-03-29 16:07:10 -0700
committerJohn Firebaugh <john.firebaugh@gmail.com>2016-03-30 13:53:31 -0700
commit7b5a1ca1670a0346cdbf2af689fabde4e70ed561 (patch)
treee54adf89ea46490833223de9fd05a9a15996a57c
parent7c036fb61882604c91b0873c2e8a9f34e9daed5e (diff)
downloadqtlocation-mapboxgl-7b5a1ca1670a0346cdbf2af689fabde4e70ed561.tar.gz
[core] Localize and simplify state for MapChangeDidFinishLoadingMap event
Only Map needs to track this state, and it can simply be set when beginning to load a style and reset when finished.
-rw-r--r--include/mbgl/map/map.hpp1
-rw-r--r--src/mbgl/map/map.cpp6
-rw-r--r--src/mbgl/map/map_context.cpp5
-rw-r--r--src/mbgl/map/map_data.hpp1
4 files changed, 5 insertions, 8 deletions
diff --git a/include/mbgl/map/map.hpp b/include/mbgl/map/map.hpp
index 463bee7938..3b8cea83a8 100644
--- a/include/mbgl/map/map.hpp
+++ b/include/mbgl/map/map.hpp
@@ -205,6 +205,7 @@ private:
};
RenderState renderState = RenderState::never;
+ bool loading = false;
};
} // namespace mbgl
diff --git a/src/mbgl/map/map.cpp b/src/mbgl/map/map.cpp
index 374e3fe615..65f19c149f 100644
--- a/src/mbgl/map/map.cpp
+++ b/src/mbgl/map/map.cpp
@@ -78,8 +78,8 @@ void Map::renderSync() {
} else if (renderState != RenderState::fully) {
renderState = RenderState::fully;
view.notifyMapChange(MapChangeDidFinishRenderingMapFullyRendered);
- if (data->loading) {
- data->loading = false;
+ if (loading) {
+ loading = false;
view.notifyMapChange(MapChangeDidFinishLoadingMap);
}
}
@@ -101,11 +101,13 @@ void Map::update(Update flags) {
#pragma mark - Style
void Map::setStyleURL(const std::string &url) {
+ loading = true;
view.notifyMapChange(MapChangeWillStartLoadingMap);
context->invoke(&MapContext::setStyleURL, url);
}
void Map::setStyleJSON(const std::string& json, const std::string& base) {
+ loading = true;
view.notifyMapChange(MapChangeWillStartLoadingMap);
context->invoke(&MapContext::setStyleJSON, json, base);
}
diff --git a/src/mbgl/map/map_context.cpp b/src/mbgl/map/map_context.cpp
index 6a17791172..f8d805b68f 100644
--- a/src/mbgl/map/map_context.cpp
+++ b/src/mbgl/map/map_context.cpp
@@ -109,7 +109,6 @@ void MapContext::setStyleURL(const std::string& url) {
Log::Error(Event::Setup, "style %s could not be found or is an incompatible legacy map or style", styleURL.c_str());
} else {
Log::Error(Event::Setup, "loading style failed: %s", res.error->message.c_str());
- data.loading = false;
}
} else if (res.notModified || res.noContent) {
return;
@@ -142,10 +141,6 @@ void MapContext::loadStyleJSON(const std::string& json, const std::string& base)
// force style cascade, causing all pending transitions to complete.
style->cascade();
- // set loading here so we don't get a false loaded event as soon as map is
- // created but before a style is loaded
- data.loading = true;
-
updateFlags |= Update::DefaultTransition | Update::Classes | Update::Zoom | Update::Annotations;
asyncUpdate.send();
}
diff --git a/src/mbgl/map/map_data.hpp b/src/mbgl/map/map_data.hpp
index 67c66896e3..8b3ac4255a 100644
--- a/src/mbgl/map/map_data.hpp
+++ b/src/mbgl/map/map_data.hpp
@@ -149,7 +149,6 @@ public:
bool paused = false;
std::mutex mutexPause;
std::condition_variable condPause;
- bool loading = false;
};
} // namespace mbgl