diff options
Diffstat (limited to 'src/location/declarativemaps/qdeclarativegeomapitembase.cpp')
-rw-r--r-- | src/location/declarativemaps/qdeclarativegeomapitembase.cpp | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/src/location/declarativemaps/qdeclarativegeomapitembase.cpp b/src/location/declarativemaps/qdeclarativegeomapitembase.cpp index 162dcac4..9a2ae50b 100644 --- a/src/location/declarativemaps/qdeclarativegeomapitembase.cpp +++ b/src/location/declarativemaps/qdeclarativegeomapitembase.cpp @@ -208,14 +208,31 @@ void QDeclarativeGeoMapItemBase::setPositionOnMap(const QGeoCoordinate &coordina setPosition(topLeft); } +bool QDeclarativeGeoMapItemBase::autoFadeIn() const +{ + return m_autoFadeIn; +} + static const double opacityRampMin = 1.5; static const double opacityRampMax = 2.5; + +void QDeclarativeGeoMapItemBase::setAutoFadeIn(bool fadeIn) +{ + if (fadeIn == m_autoFadeIn) + return; + m_autoFadeIn = fadeIn; + if (quickMap_ && quickMap_->zoomLevel() < opacityRampMax) + polishAndUpdate(); +} + /*! \internal */ float QDeclarativeGeoMapItemBase::zoomLevelOpacity() const { - if (quickMap_->zoomLevel() > opacityRampMax) + if (!m_autoFadeIn) // Consider skipping the opacity node instead. + return 1.0; + else if (quickMap_->zoomLevel() > opacityRampMax) return 1.0; else if (quickMap_->zoomLevel() > opacityRampMin) return quickMap_->zoomLevel() - opacityRampMin; |