diff options
author | Mikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com> | 2018-10-25 16:15:31 +0300 |
---|---|---|
committer | Mikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com> | 2018-10-25 22:42:43 +0300 |
commit | 7a9461a8d439458b18656ecfb839923adc5f0e9b (patch) | |
tree | 5617367418dafc5b7b45c4ba7cca4b74f40200f3 /platform/qt | |
parent | fdd8b54900d963d01f9b643fa7edd9e988eb7785 (diff) | |
download | qtlocation-mapboxgl-7a9461a8d439458b18656ecfb839923adc5f0e9b.tar.gz |
Consolidate `style::Layer` properties API
The `style::Layer` class now exposes all the properties contained at `style::LayerImpl`.
This allowed to drop `style::Layer::accept()` method usage, avoid the repeated generated code
and thus save some binary size.
This patch is a part of the layers modularization effort.
Diffstat (limited to 'platform/qt')
-rw-r--r-- | platform/qt/src/qmapboxgl.cpp | 45 |
1 files changed, 2 insertions, 43 deletions
diff --git a/platform/qt/src/qmapboxgl.cpp b/platform/qt/src/qmapboxgl.cpp index ceed411ca3..d008ad86c9 100644 --- a/platform/qt/src/qmapboxgl.cpp +++ b/platform/qt/src/qmapboxgl.cpp @@ -1533,38 +1533,14 @@ void QMapboxGL::setFilter(const QString& layer, const QVariant& filter) return; } - Filter filter_; - Error error; mbgl::optional<Filter> converted = convert<Filter>(filter, error); if (!converted) { qWarning() << "Error parsing filter:" << error.message.c_str(); return; } - filter_ = std::move(*converted); - - if (layer_->is<FillLayer>()) { - layer_->as<FillLayer>()->setFilter(filter_); - return; - } - if (layer_->is<LineLayer>()) { - layer_->as<LineLayer>()->setFilter(filter_); - return; - } - if (layer_->is<SymbolLayer>()) { - layer_->as<SymbolLayer>()->setFilter(filter_); - return; - } - if (layer_->is<CircleLayer>()) { - layer_->as<CircleLayer>()->setFilter(filter_); - return; - } - if (layer_->is<FillExtrusionLayer>()) { - layer_->as<FillExtrusionLayer>()->setFilter(filter_); - return; - } - qWarning() << "Layer doesn't support filters"; + layer_->setFilter(std::move(*converted)); } QVariant QVariantFromValue(const mbgl::Value &value) { @@ -1617,24 +1593,7 @@ QVariant QMapboxGL::getFilter(const QString &layer) const { return QVariant(); } - Filter filter_; - - if (layer_->is<FillLayer>()) { - filter_ = layer_->as<FillLayer>()->getFilter(); - } else if (layer_->is<LineLayer>()) { - filter_ = layer_->as<LineLayer>()->getFilter(); - } else if (layer_->is<SymbolLayer>()) { - filter_ = layer_->as<SymbolLayer>()->getFilter(); - } else if (layer_->is<CircleLayer>()) { - filter_ = layer_->as<CircleLayer>()->getFilter(); - } else if (layer_->is<FillExtrusionLayer>()) { - filter_ = layer_->as<FillExtrusionLayer>()->getFilter(); - } else { - qWarning() << "Layer doesn't support filters"; - return QVariant(); - } - - auto serialized = filter_.serialize(); + auto serialized = layer_->getFilter().serialize(); return QVariantFromValue(serialized); } |