summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThiago Marcos P. Santos <thiago@mapbox.com>2016-01-18 13:32:47 +0200
committerThiago Marcos P. Santos <thiago@mapbox.com>2016-04-20 20:55:51 +0300
commit1ea7bde065f85298ee0a1ba5d94ec926137ef846 (patch)
tree6758da6c1a2483bae00d9ef97cffb2afc23a6caa
parentf83b8d8ea4631aa063d04e3194a84c75ba667dfd (diff)
downloadqtlocation-mapboxgl-1ea7bde065f85298ee0a1ba5d94ec926137ef846.tar.gz
[Qt] Add support for margins
-rw-r--r--platform/qt/include/qmapboxgl.hpp4
-rw-r--r--platform/qt/src/qmapboxgl.cpp40
-rw-r--r--platform/qt/src/qmapboxgl_p.hpp2
3 files changed, 37 insertions, 9 deletions
diff --git a/platform/qt/include/qmapboxgl.hpp b/platform/qt/include/qmapboxgl.hpp
index 0042a73dd2..65f038ad72 100644
--- a/platform/qt/include/qmapboxgl.hpp
+++ b/platform/qt/include/qmapboxgl.hpp
@@ -6,6 +6,7 @@
#include <QPointF>
class QImage;
+class QMargins;
class QSize;
class QString;
class QStringList;
@@ -170,6 +171,9 @@ public:
QPointF pixelForCoordinate(const Coordinate &) const;
Coordinate coordinateForPixel(const QPointF &) const;
+ void setMargins(const QMargins &margins);
+ QMargins margins() const;
+
public slots:
void render();
void connectionEstablished();
diff --git a/platform/qt/src/qmapboxgl.cpp b/platform/qt/src/qmapboxgl.cpp
index 12b36dd97a..1992f9aad6 100644
--- a/platform/qt/src/qmapboxgl.cpp
+++ b/platform/qt/src/qmapboxgl.cpp
@@ -12,6 +12,7 @@
#include <QCoreApplication>
#include <QImage>
#include <QMapboxGL>
+#include <QMargins>
#include <QString>
#include <QStringList>
@@ -140,22 +141,22 @@ void QMapboxGL::setStyleURL(const QString &url)
double QMapboxGL::latitude() const
{
- return d_ptr->mapObj->getLatLng().latitude;
+ return d_ptr->mapObj->getLatLng(d_ptr->margins).latitude;
}
void QMapboxGL::setLatitude(double latitude_)
{
- d_ptr->mapObj->setLatLng(mbgl::LatLng { latitude_, longitude() });
+ d_ptr->mapObj->setLatLng(mbgl::LatLng { latitude_, longitude() }, d_ptr->margins);
}
double QMapboxGL::longitude() const
{
- return d_ptr->mapObj->getLatLng().longitude;
+ return d_ptr->mapObj->getLatLng(d_ptr->margins).longitude;
}
void QMapboxGL::setLongitude(double longitude_)
{
- d_ptr->mapObj->setLatLng(mbgl::LatLng { latitude(), longitude_ });
+ d_ptr->mapObj->setLatLng(mbgl::LatLng { latitude(), longitude_ }, d_ptr->margins);
}
double QMapboxGL::scale() const
@@ -175,7 +176,7 @@ double QMapboxGL::zoom() const
void QMapboxGL::setZoom(double zoom_)
{
- d_ptr->mapObj->setZoom(zoom_);
+ d_ptr->mapObj->setZoom(zoom_, d_ptr->margins);
}
double QMapboxGL::minimumZoom() const
@@ -190,18 +191,19 @@ double QMapboxGL::maximumZoom() const
QMapboxGL::Coordinate QMapboxGL::coordinate() const
{
- const mbgl::LatLng& latLng = d_ptr->mapObj->getLatLng();
+ const mbgl::LatLng& latLng = d_ptr->mapObj->getLatLng(d_ptr->margins);
return Coordinate(latLng.latitude, latLng.longitude);
}
void QMapboxGL::setCoordinate(const Coordinate &coordinate_)
{
- d_ptr->mapObj->setLatLng(mbgl::LatLng { coordinate_.first, coordinate_.second });
+ d_ptr->mapObj->setLatLng(mbgl::LatLng { coordinate_.first, coordinate_.second }, d_ptr->margins);
}
void QMapboxGL::setCoordinateZoom(const Coordinate &coordinate_, double zoom_)
{
- d_ptr->mapObj->setLatLngZoom(mbgl::LatLng { coordinate_.first, coordinate_.second }, zoom_);
+ d_ptr->mapObj->setLatLngZoom(
+ mbgl::LatLng { coordinate_.first, coordinate_.second }, zoom_, d_ptr->margins);
}
double QMapboxGL::bearing() const
@@ -211,7 +213,7 @@ double QMapboxGL::bearing() const
void QMapboxGL::setBearing(double degrees)
{
- d_ptr->mapObj->setBearing(degrees);
+ d_ptr->mapObj->setBearing(degrees, d_ptr->margins);
}
void QMapboxGL::setBearing(double degrees, const QPointF &center)
@@ -456,6 +458,26 @@ QMapboxGL::Coordinate QMapboxGL::coordinateForPixel(const QPointF &pixel) const
return Coordinate(latLng.latitude, latLng.longitude);
}
+void QMapboxGL::setMargins(const QMargins &margins_)
+{
+ d_ptr->margins = {
+ static_cast<double>(margins_.top()),
+ static_cast<double>(margins_.left()),
+ static_cast<double>(margins_.bottom()),
+ static_cast<double>(margins_.right())
+ };
+}
+
+QMargins QMapboxGL::margins() const
+{
+ return QMargins(
+ d_ptr->margins.left,
+ d_ptr->margins.top,
+ d_ptr->margins.right,
+ d_ptr->margins.bottom
+ );
+}
+
void QMapboxGL::render()
{
d_ptr->mapObj->render();
diff --git a/platform/qt/src/qmapboxgl_p.hpp b/platform/qt/src/qmapboxgl_p.hpp
index dec776c06e..93da4089a9 100644
--- a/platform/qt/src/qmapboxgl_p.hpp
+++ b/platform/qt/src/qmapboxgl_p.hpp
@@ -4,6 +4,7 @@
#include <mbgl/map/map.hpp>
#include <mbgl/map/view.hpp>
#include <mbgl/storage/default_file_source.hpp>
+#include <mbgl/util/geo.hpp>
#include <mbgl/util/run_loop.hpp>
#include <QMapboxGL>
@@ -33,6 +34,7 @@ public:
void invalidate() final;
void notifyMapChange(mbgl::MapChange change) final;
+ mbgl::EdgeInsets margins;
QSize size;
QMapboxGL *q_ptr = nullptr;