summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThiago Marcos P. Santos <thiago@mapbox.com>2016-07-07 16:10:29 +0300
committerThiago Marcos P. Santos <thiago@mapbox.com>2016-07-11 17:01:32 +0300
commite9259fc03e998e892c92e965d264bca974174fea (patch)
treef90470b8a80e1c8f219045a0f3ba4e0b1bec77c7
parent46df5d58f9f84bd66d643827eb8aa2ee1871a8db (diff)
downloadqtlocation-mapboxgl-e9259fc03e998e892c92e965d264bca974174fea.tar.gz
[Qt] Added set style layout properties method
-rw-r--r--platform/qt/include/qmapboxgl.hpp2
-rw-r--r--platform/qt/src/qmapboxgl.cpp21
2 files changed, 23 insertions, 0 deletions
diff --git a/platform/qt/include/qmapboxgl.hpp b/platform/qt/include/qmapboxgl.hpp
index 309aef1c77..121f1debb4 100644
--- a/platform/qt/include/qmapboxgl.hpp
+++ b/platform/qt/include/qmapboxgl.hpp
@@ -174,6 +174,8 @@ public:
void removeAnnotation(QMapbox::AnnotationID);
+ void setLayoutProperty(const QString &layer, const QString &property, const QVariant &value);
+
bool isRotating() const;
bool isScaling() const;
bool isPanning() const;
diff --git a/platform/qt/src/qmapboxgl.cpp b/platform/qt/src/qmapboxgl.cpp
index 204aa0571e..1bf213554d 100644
--- a/platform/qt/src/qmapboxgl.cpp
+++ b/platform/qt/src/qmapboxgl.cpp
@@ -6,6 +6,8 @@
#include <mbgl/gl/gl.hpp>
#include <mbgl/map/camera.hpp>
#include <mbgl/map/map.hpp>
+#include <mbgl/style/conversion.hpp>
+#include <mbgl/style/conversion/layer.hpp>
#include <mbgl/style/layers/custom_layer.hpp>
#include <mbgl/style/transition_options.hpp>
#include <mbgl/sprite/sprite_image.hpp>
@@ -22,6 +24,7 @@
#include <QCoreApplication>
#endif
+#include <QDebug>
#include <QImage>
#include <QMapboxGL>
#include <QMargins>
@@ -448,6 +451,24 @@ void QMapboxGL::removeAnnotation(AnnotationID annotationID)
d_ptr->mapObj->removeAnnotation(annotationID);
}
+void QMapboxGL::setLayoutProperty(const QString& layer_, const QString& property, const QVariant& value)
+{
+ using namespace mbgl::style;
+
+ Layer* layer = d_ptr->mapObj->getLayer(layer_.toStdString());
+ if (!layer) {
+ qWarning() << "Layer not found:" << layer_;
+ return;
+ }
+
+ if (conversion::setLayoutProperty(*layer, property.toStdString(), value)) {
+ qWarning() << "Error setting layout property:" << layer_ << "-" << property;
+ return;
+ }
+
+ d_ptr->mapObj->update(mbgl::Update::RecalculateStyle);
+}
+
bool QMapboxGL::isRotating() const
{
return d_ptr->mapObj->isRotating();