summaryrefslogtreecommitdiff
path: root/platform/qt/src/qmapboxgl.cpp
diff options
context:
space:
mode:
authorMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2018-10-25 16:15:31 +0300
committerMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2018-10-25 22:42:43 +0300
commit7a9461a8d439458b18656ecfb839923adc5f0e9b (patch)
tree5617367418dafc5b7b45c4ba7cca4b74f40200f3 /platform/qt/src/qmapboxgl.cpp
parentfdd8b54900d963d01f9b643fa7edd9e988eb7785 (diff)
downloadqtlocation-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/src/qmapboxgl.cpp')
-rw-r--r--platform/qt/src/qmapboxgl.cpp45
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);
}