summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruno de Oliveira Abinader <bruno@mapbox.com>2018-10-02 16:19:15 -0700
committerBruno de Oliveira Abinader <bruno@mapbox.com>2018-10-02 16:36:14 -0700
commit0af3e0e24d131815ae139e2b980d4ba13f58cf4b (patch)
tree0a3ccaa43e52b7d29dc699d6f4f9aca55c8a66a2
parent7b243392e366907b35f819ac2d416475287d74ea (diff)
downloadqtlocation-mapboxgl-upstream/apply-style-transition.tar.gz
[core] Read style's transition from parserupstream/apply-style-transition
-rw-r--r--src/mbgl/style/parser.hpp3
-rw-r--r--src/mbgl/style/style_impl.cpp3
-rw-r--r--test/style/style.test.cpp8
3 files changed, 11 insertions, 3 deletions
diff --git a/src/mbgl/style/parser.hpp b/src/mbgl/style/parser.hpp
index 401b5ff513..ec7be038fb 100644
--- a/src/mbgl/style/parser.hpp
+++ b/src/mbgl/style/parser.hpp
@@ -4,6 +4,7 @@
#include <mbgl/style/source.hpp>
#include <mbgl/style/light.hpp>
+#include <mbgl/util/constants.hpp>
#include <mbgl/util/rapidjson.hpp>
#include <mbgl/util/font_stack.hpp>
#include <mbgl/util/geo.hpp>
@@ -32,7 +33,7 @@ public:
std::vector<std::unique_ptr<Source>> sources;
std::vector<std::unique_ptr<Layer>> layers;
- TransitionOptions transition;
+ TransitionOptions transition { { util::DEFAULT_TRANSITION_DURATION } };
Light light;
std::string name;
diff --git a/src/mbgl/style/style_impl.cpp b/src/mbgl/style/style_impl.cpp
index 0c7f924917..5c9edc789f 100644
--- a/src/mbgl/style/style_impl.cpp
+++ b/src/mbgl/style/style_impl.cpp
@@ -92,8 +92,7 @@ void Style::Impl::parse(const std::string& json_) {
layers.clear();
images.clear();
- transitionOptions = {};
- transitionOptions.duration = util::DEFAULT_TRANSITION_DURATION;
+ transitionOptions = parser.transition;
for (auto& source : parser.sources) {
addSource(std::move(source));
diff --git a/test/style/style.test.cpp b/test/style/style.test.cpp
index f2055c88f8..2371e91107 100644
--- a/test/style/style.test.cpp
+++ b/test/style/style.test.cpp
@@ -43,6 +43,14 @@ TEST(Style, Properties) {
ASSERT_EQ("", style.getName());
ASSERT_EQ(60, *style.getDefaultCamera().pitch);
+ style.loadJSON(R"STYLE({})STYLE");
+ ASSERT_EQ(Milliseconds(300), *style.getTransitionOptions().duration);
+ ASSERT_EQ(optional<Duration> {}, style.getTransitionOptions().delay);
+
+ style.loadJSON(R"STYLE({"transition": { "duration": 500, "delay": 50 }})STYLE");
+ ASSERT_EQ(Milliseconds(500), *style.getTransitionOptions().duration);
+ ASSERT_EQ(Milliseconds(50), *style.getTransitionOptions().delay);
+
style.loadJSON(R"STYLE({"name": 23, "center": {}, "bearing": "north", "zoom": null, "pitch": "wide"})STYLE");
ASSERT_EQ("", style.getName());
ASSERT_EQ(LatLng {}, *style.getDefaultCamera().center);