diff options
author | Paolo Angelelli <paolo.angelelli@qt.io> | 2018-06-19 16:33:44 +0200 |
---|---|---|
committer | Paolo Angelelli <paolo.angelelli@qt.io> | 2018-07-26 13:38:02 +0000 |
commit | eca7cc8a260538fcccde97fe59d9580250600bf1 (patch) | |
tree | 6a87cc4391b1e0dbf65ee011d0314cfae4c8b19f /src/location/maps/qgeotiledmap.cpp | |
parent | d6fc6ba0f84c4cda0ccc2e1250da4a68441dd6ba (diff) | |
download | qtlocation-eca7cc8a260538fcccde97fe59d9580250600bf1.tar.gz |
Introduce Map.visibleArea
This will allow moving the visible map area to a subregion
of the viewport, allowing to maintain the desired visible
region visible when overlaying controls on top of the map.
Task-number: QTBUG-68966
Change-Id: Idf4b30f7c1e4062e5e1c0ddc01a31bc856c0bc0c
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
Diffstat (limited to 'src/location/maps/qgeotiledmap.cpp')
-rw-r--r-- | src/location/maps/qgeotiledmap.cpp | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/src/location/maps/qgeotiledmap.cpp b/src/location/maps/qgeotiledmap.cpp index a1231cf4..74346fdb 100644 --- a/src/location/maps/qgeotiledmap.cpp +++ b/src/location/maps/qgeotiledmap.cpp @@ -149,7 +149,8 @@ QGeoMap::Capabilities QGeoTiledMap::capabilities() const { return Capabilities(SupportsVisibleRegion | SupportsSetBearing - | SupportsAnchoringCoordinate); + | SupportsAnchoringCoordinate + | SupportsVisibleArea); } void QGeoTiledMap::setCopyrightVisible(bool visible) @@ -353,6 +354,31 @@ void QGeoTiledMapPrivate::updateScene() emit q->sgNodeChanged(); } +void QGeoTiledMapPrivate::setVisibleArea(const QRectF &visibleArea) +{ + Q_Q(QGeoTiledMap); + const QRectF va = clampVisibleArea(visibleArea); + if (va == m_visibleArea) + return; + + m_visibleArea = va; + m_geoProjection->setVisibleArea(va); + + m_visibleTiles->setVisibleArea(va); + m_prefetchTiles->setVisibleArea(va); + m_mapScene->setVisibleArea(va); + + if (m_copyrightVisible) + q->evaluateCopyrights(m_mapScene->visibleTiles()); + updateScene(); + q->sgNodeChanged(); +} + +QRectF QGeoTiledMapPrivate::visibleArea() const +{ + return m_visibleArea; +} + void QGeoTiledMapPrivate::changeActiveMapType(const QGeoMapType mapType) { m_visibleTiles->setTileSize(m_cameraCapabilities.tileSize()); |