summaryrefslogtreecommitdiff
path: root/src/mbgl/style/layer.cpp
diff options
context:
space:
mode:
authorJohn Firebaugh <john.firebaugh@gmail.com>2018-08-10 15:15:24 -0700
committerJohn Firebaugh <john.firebaugh@gmail.com>2018-08-13 12:39:44 -0700
commitd886d3e4c04801e57340f98761cf76eec29e969d (patch)
treec68db21c3c34d5a23584136d0ccd74a5fedb8c50 /src/mbgl/style/layer.cpp
parent58202eaf80bdfe1273396d2abe6b1fee8fed937a (diff)
downloadqtlocation-mapboxgl-d886d3e4c04801e57340f98761cf76eec29e969d.tar.gz
[core] Factor out setVisibility conversion
Diffstat (limited to 'src/mbgl/style/layer.cpp')
-rw-r--r--src/mbgl/style/layer.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/mbgl/style/layer.cpp b/src/mbgl/style/layer.cpp
index 142fe313cf..31ff5bf47a 100644
--- a/src/mbgl/style/layer.cpp
+++ b/src/mbgl/style/layer.cpp
@@ -1,6 +1,7 @@
#include <mbgl/style/layer.hpp>
#include <mbgl/style/layer_impl.hpp>
#include <mbgl/style/layer_observer.hpp>
+#include <mbgl/style/conversion/constant.hpp>
namespace mbgl {
namespace style {
@@ -38,5 +39,23 @@ void Layer::setObserver(LayerObserver* observer_) {
observer = observer_ ? observer_ : &nullObserver;
}
+optional<conversion::Error> Layer::setVisibility(const conversion::Convertible& value) {
+ using namespace conversion;
+
+ if (isUndefined(value)) {
+ setVisibility(VisibilityType::Visible);
+ return nullopt;
+ }
+
+ Error error;
+ optional<VisibilityType> visibility = convert<VisibilityType>(value, error);
+ if (!visibility) {
+ return error;
+ }
+
+ setVisibility(*visibility);
+ return nullopt;
+}
+
} // namespace style
} // namespace mbgl