diff options
author | John Firebaugh <john.firebaugh@gmail.com> | 2018-08-10 15:15:24 -0700 |
---|---|---|
committer | John Firebaugh <john.firebaugh@gmail.com> | 2018-08-13 12:39:44 -0700 |
commit | d886d3e4c04801e57340f98761cf76eec29e969d (patch) | |
tree | c68db21c3c34d5a23584136d0ccd74a5fedb8c50 /src/mbgl/style/layer.cpp | |
parent | 58202eaf80bdfe1273396d2abe6b1fee8fed937a (diff) | |
download | qtlocation-mapboxgl-d886d3e4c04801e57340f98761cf76eec29e969d.tar.gz |
[core] Factor out setVisibility conversion
Diffstat (limited to 'src/mbgl/style/layer.cpp')
-rw-r--r-- | src/mbgl/style/layer.cpp | 19 |
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 |