[core] Factor out setVisibility conversion
This commit is contained in:
@@ -120,6 +120,7 @@ public:
|
||||
// Dynamic properties
|
||||
virtual optional<conversion::Error> setLayoutProperty(const std::string& name, const conversion::Convertible& value) = 0;
|
||||
virtual optional<conversion::Error> setPaintProperty(const std::string& name, const conversion::Convertible& value) = 0;
|
||||
optional<conversion::Error> setVisibility(const conversion::Convertible& value);
|
||||
|
||||
// Private implementation
|
||||
class Impl;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -273,19 +273,7 @@ optional<Error> BackgroundLayer::setPaintProperty(const std::string& name, const
|
||||
|
||||
optional<Error> BackgroundLayer::setLayoutProperty(const std::string& name, const Convertible& value) {
|
||||
if (name == "visibility") {
|
||||
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;
|
||||
return Layer::setVisibility(value);
|
||||
}
|
||||
|
||||
enum class Property {
|
||||
|
||||
@@ -718,19 +718,7 @@ optional<Error> CircleLayer::setPaintProperty(const std::string& name, const Con
|
||||
|
||||
optional<Error> CircleLayer::setLayoutProperty(const std::string& name, const Convertible& value) {
|
||||
if (name == "visibility") {
|
||||
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;
|
||||
return Layer::setVisibility(value);
|
||||
}
|
||||
|
||||
enum class Property {
|
||||
|
||||
@@ -520,19 +520,7 @@ optional<Error> FillExtrusionLayer::setPaintProperty(const std::string& name, co
|
||||
|
||||
optional<Error> FillExtrusionLayer::setLayoutProperty(const std::string& name, const Convertible& value) {
|
||||
if (name == "visibility") {
|
||||
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;
|
||||
return Layer::setVisibility(value);
|
||||
}
|
||||
|
||||
enum class Property {
|
||||
|
||||
@@ -520,19 +520,7 @@ optional<Error> FillLayer::setPaintProperty(const std::string& name, const Conve
|
||||
|
||||
optional<Error> FillLayer::setLayoutProperty(const std::string& name, const Convertible& value) {
|
||||
if (name == "visibility") {
|
||||
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;
|
||||
return Layer::setVisibility(value);
|
||||
}
|
||||
|
||||
enum class Property {
|
||||
|
||||
@@ -405,19 +405,7 @@ optional<Error> HeatmapLayer::setPaintProperty(const std::string& name, const Co
|
||||
|
||||
optional<Error> HeatmapLayer::setLayoutProperty(const std::string& name, const Convertible& value) {
|
||||
if (name == "visibility") {
|
||||
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;
|
||||
return Layer::setVisibility(value);
|
||||
}
|
||||
|
||||
enum class Property {
|
||||
|
||||
@@ -430,19 +430,7 @@ optional<Error> HillshadeLayer::setPaintProperty(const std::string& name, const
|
||||
|
||||
optional<Error> HillshadeLayer::setLayoutProperty(const std::string& name, const Convertible& value) {
|
||||
if (name == "visibility") {
|
||||
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;
|
||||
return Layer::setVisibility(value);
|
||||
}
|
||||
|
||||
enum class Property {
|
||||
|
||||
@@ -257,19 +257,7 @@ case util::hashFNV1a("<%- property.name %>"):
|
||||
|
||||
optional<Error> <%- camelize(type) %>Layer::setLayoutProperty(const std::string& name, const Convertible& value) {
|
||||
if (name == "visibility") {
|
||||
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;
|
||||
return Layer::setVisibility(value);
|
||||
}
|
||||
|
||||
enum class Property {
|
||||
|
||||
@@ -732,19 +732,7 @@ optional<Error> LineLayer::setPaintProperty(const std::string& name, const Conve
|
||||
|
||||
optional<Error> LineLayer::setLayoutProperty(const std::string& name, const Convertible& value) {
|
||||
if (name == "visibility") {
|
||||
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;
|
||||
return Layer::setVisibility(value);
|
||||
}
|
||||
|
||||
enum class Property {
|
||||
|
||||
@@ -519,19 +519,7 @@ optional<Error> RasterLayer::setPaintProperty(const std::string& name, const Con
|
||||
|
||||
optional<Error> RasterLayer::setLayoutProperty(const std::string& name, const Convertible& value) {
|
||||
if (name == "visibility") {
|
||||
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;
|
||||
return Layer::setVisibility(value);
|
||||
}
|
||||
|
||||
enum class Property {
|
||||
|
||||
@@ -1432,19 +1432,7 @@ optional<Error> SymbolLayer::setPaintProperty(const std::string& name, const Con
|
||||
|
||||
optional<Error> SymbolLayer::setLayoutProperty(const std::string& name, const Convertible& value) {
|
||||
if (name == "visibility") {
|
||||
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;
|
||||
return Layer::setVisibility(value);
|
||||
}
|
||||
|
||||
enum class Property {
|
||||
|
||||
Reference in New Issue
Block a user