{
qDebug() << __PRETTY_FUNCTION__;
- QSettings settings(DIRECTORY_NAME, FILE_NAME);
+ QSettings settings(SETTINGS_ORGANIZATION_NAME, SETTINGS_APPLICATION_NAME);
settings.setValue(MAP_LAST_POSITION, QVariant::fromValue(centerGeoCoordinate()));
settings.setValue(MAP_LAST_ZOOMLEVEL, m_zoomLevel);
return QRect(topLeft, m_tilesGridSize);
}
-void MapEngine::centerAndZoomTo(QRect rect)
+void MapEngine::centerAndZoomTo(QRect rect, bool useMargins)
{
- const int MARGIN_HORIZONTAL = 50;
- const int MARGIN_VERTICAL = 5;
+ qDebug() << __PRETTY_FUNCTION__;
+
+ int marginHorizontal = 0;
+ int marginVertical = 0;
+
+ if (useMargins) {
+ marginHorizontal = 5;
+ marginVertical = 5;
+ }
// calculate the usable size of the view
- int viewUsableHeight = m_viewSize.height() - 2 * MARGIN_VERTICAL;
- int viewUsableWidth = m_viewSize.width() - 2 * MARGIN_HORIZONTAL;
+ int viewUsableHeight = m_viewSize.height() - 2 * marginVertical;
+ int viewUsableWidth = m_viewSize.width() - 2 * marginHorizontal;
// calculate how many levels must be zoomed out from the closest zoom level to get the rect
// fit inside the usable view area
scrollToPosition(SceneCoordinate(coordinate));
}
+void MapEngine::clearRoute()
+{
+ qDebug() << __PRETTY_FUNCTION__;
+
+ if (m_mapRouteItem) {
+ m_mapScene->removeItem(m_mapRouteItem);
+ delete m_mapRouteItem;
+ m_mapRouteItem = 0;
+ }
+}
+
QPoint MapEngine::convertSceneCoordinateToTileNumber(int zoomLevel, SceneCoordinate coordinate)
{
qDebug() << __PRETTY_FUNCTION__;
{
qDebug() << __PRETTY_FUNCTION__;
- QSettings settings(DIRECTORY_NAME, FILE_NAME);
+ QSettings settings(SETTINGS_ORGANIZATION_NAME, SETTINGS_APPLICATION_NAME);
// init can be only done if both values exists in the settings
if (settings.contains(MAP_LAST_POSITION) && settings.contains(MAP_LAST_ZOOMLEVEL)) {
{
qDebug() << __PRETTY_FUNCTION__;
- m_route = route;
-
- // delete old route track (if exists)
- if (m_mapRouteItem) {
- m_mapScene->removeItem(m_mapRouteItem);
- delete m_mapRouteItem;
- m_mapRouteItem = 0;
- }
+ clearRoute();
- // create new route track
- m_mapRouteItem = new MapRouteItem(&m_route);
+ m_mapRouteItem = new MapRouteItem(&route);
m_mapScene->addItem(m_mapRouteItem);
centerAndZoomTo(m_mapRouteItem->boundingRect().toRect());
m_tilesGridSize.setWidth(gridWidth);
}
+void MapEngine::showMapArea(const GeoCoordinate &swBound, const GeoCoordinate &neBound)
+{
+ qDebug() << __PRETTY_FUNCTION__;
+
+ QRect area;
+ area.setTopRight(SceneCoordinate(neBound).toPointF().toPoint());
+ area.setBottomLeft(SceneCoordinate(swBound).toPointF().toPoint());
+
+ centerAndZoomTo(area, false);
+}
+
void MapEngine::updateDirectionIndicator()
{
qDebug() << __PRETTY_FUNCTION__;