summaryrefslogtreecommitdiff
path: root/src/location/declarativemaps/qdeclarativegeomapitembase.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/location/declarativemaps/qdeclarativegeomapitembase.cpp')
-rw-r--r--src/location/declarativemaps/qdeclarativegeomapitembase.cpp19
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;