m_zoomLevel++;
emit zoomLevelChanged(m_zoomLevel);
- setZValues();
+ setTilesDrawingLevels();
calculateNewTiles(m_sceneCoordinate);
removeOldTiles();
m_zoomLevel--;
emit zoomLevelChanged(m_zoomLevel);
- setZValues();
+ setTilesDrawingLevels();
calculateNewTiles(m_sceneCoordinate);
}
-void MapEngine::setZValues()
+void MapEngine::setTilesDrawingLevels()
{
//qDebug() << __PRETTY_FUNCTION__ << "m_zoomLevel:" << m_zoomLevel;
return tilePathString;
}
+
+void MapEngine::scalingFactorChanged(qreal scaleFactor)
+{
+ qDebug() << __PRETTY_FUNCTION__;
+}
void parseURL(const QUrl &url, int &zoom, int &x, int &y);
/**
- * @brief Set zValues for all tiles in the scene
+ * @brief Set drawing order of all tiles in the scene
*
- * Drawing order of MapTiles, which has the zoom level higher than the current
- * zoom level, is reversed and those MapTiles are mapped between lower level MapTiles.
- * Example: If maximum zoom level is 18 and current view zoomlevel is 15, then
- * the drawing order from top to bottom is 15, 16, 14, 17, 13, 18, 12, 11, 10, ...
+ * Check MapTile::setSceneLevel for more information.
*/
- void setZValues();
+ void setTilesDrawingLevels();
/**
* @brief Calculate maximum value for tile in this zoom level.
void mapImageReceived(const QUrl &url, const QPixmap &pixmap);
/**
+ * @brief Slot for view scaling factor change events
+ *
+ * Can be used to trigger scaling of zoom buttons, friend indicators and other
+ * MapScene elements which should retain their visual size
+ * @param scaleFactor view's scale factor
+ */
+ void scalingFactorChanged(qreal scaleFactor);
+
+ /**
* @brief Slot for zooming in
*
*/
*/
void setZoomLevel(int zoomLevel);
+ /**
+ * @brief Set drawing level of the tile based on current zoom level
+ *
+ * Drawing order of MapTiles, which has the zoom level higher than the current
+ * zoom level, is reversed and those MapTiles are mapped between lower level MapTiles.
+ * Example: If maximum zoom level is 18 and current view zoomlevel is 15, then
+ * the drawing order from top to bottom is 15, 16, 14, 17, 13, 18, 12, 11, 10, ...
+ * @param currentZoomLevel current zoom level
+ */
void setSceneLevel(int currentZoomLevel);
/**
QTransform transform;
transform.scale(scaleFactor, scaleFactor);
+ emit scalingFactorChanged(scaleFactor);
setTransform(transform);
}
qreal currentScale();
signals:
+
+ /**
+ * @brief Signal for view scale factor change events
+ *
+ * Can be used to trigger scaling of zoom buttons, friend indicators and other
+ * MapScene elements which should retain their visual size
+ * @param scaleFactor view's scale factor
+ */
+ void scalingFactorChanged(qreal scaleFactor);
+
/**
* @brief Signal for view scroll events
*
connect(mapView, SIGNAL(viewScrolled(QPoint)), mapEngine, SLOT(setLocation(QPoint)));
connect(mapEngine, SIGNAL(locationChanged(QPoint)),
- mapView, SLOT(centerToSceneCoordinates(QPoint)));
+ mapView, SLOT(centerToSceneCoordinates(QPoint)));
connect(mapEngine, SIGNAL(zoomLevelChanged(int)), mapView, SLOT(setZoomLevel(int)));
connect(mapView, SIGNAL(viewResized(QSize)), mapEngine, SLOT(viewResized(QSize)));
+ connect(mapView, SIGNAL(scalingFactorChanged(qreal)),
+ mapEngine, SLOT(scalingFactorChanged(qreal)));
QHBoxLayout *mapViewLayout = new QHBoxLayout;
//DEBUG