diff options
Diffstat (limited to 'platform/qt/src/qquickmapboxgl.cpp')
-rw-r--r-- | platform/qt/src/qquickmapboxgl.cpp | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/platform/qt/src/qquickmapboxgl.cpp b/platform/qt/src/qquickmapboxgl.cpp index 99f79126f6..96af258214 100644 --- a/platform/qt/src/qquickmapboxgl.cpp +++ b/platform/qt/src/qquickmapboxgl.cpp @@ -3,6 +3,7 @@ #include <QQuickMapboxGL> #include <QQuickItem> +#include <QtGlobal> QQuickMapboxGL::QQuickMapboxGL(QQuickItem *parent_) : QQuickFramebufferObject(parent_) @@ -21,3 +22,102 @@ QQuickFramebufferObject::Renderer *QQuickMapboxGL::createRenderer() const { return new QQuickMapboxGLRenderer(); } + +void QQuickMapboxGL::setMinimumZoomLevel(qreal zoom) +{ + zoom = qMax(0., zoom); + zoom = qMin(m_maximumZoomLevel, zoom); + + if (m_minimumZoomLevel == zoom) { + return; + } + + m_minimumZoomLevel = zoom; + + emit minimumZoomLevelChanged(); +} + +qreal QQuickMapboxGL::minimumZoomLevel() const +{ + return m_minimumZoomLevel; +} + +void QQuickMapboxGL::setMaximumZoomLevel(qreal zoom) +{ + zoom = qMin(20., zoom); + zoom = qMax(m_minimumZoomLevel, zoom); + + if (m_maximumZoomLevel == zoom) { + return; + } + + m_maximumZoomLevel = zoom; + + emit maximumZoomLevelChanged(); +} + +qreal QQuickMapboxGL::maximumZoomLevel() const +{ + return m_maximumZoomLevel; +} + +void QQuickMapboxGL::setZoomLevel(qreal zoom) +{ + zoom = qMin(m_maximumZoomLevel, zoom); + zoom = qMax(m_minimumZoomLevel, zoom); + + if (m_zoomLevel == zoom) { + return; + } + + m_zoomLevel = zoom; + + m_syncState |= ZoomNeedsSync; + update(); + + emit zoomLevelChanged(m_zoomLevel); +} + +qreal QQuickMapboxGL::zoomLevel() const +{ + return m_zoomLevel; +} + +void QQuickMapboxGL::setCenter(const QGeoCoordinate &coordinate) +{ + if (m_center == coordinate) { + return; + } + + m_center = coordinate; + + m_syncState |= CenterNeedsSync; + update(); + + emit centerChanged(m_center); +} + +QGeoCoordinate QQuickMapboxGL::center() const +{ + return m_center; +} + + +void QQuickMapboxGL::setVisibleRegion(const QGeoShape &shape) +{ + m_visibleRegion = shape; +} + +QGeoShape QQuickMapboxGL::visibleRegion() const +{ + return m_visibleRegion; +} + +int QQuickMapboxGL::swapSyncState() +{ + int oldState = m_syncState; + + m_syncState = NothingNeedsSync; + + return oldState; +} |