#include <QRect>
#include "frienditemshandler.h"
+#include "gpslocationitem.h"
#include "mapcommon.h"
#include "mapengine.h"
#include "maptile.h"
m_ownLocation->hide(); // hide until first location info is received
m_mapScene->addItem(m_ownLocation);
+ m_gpsLocationItem = new GPSLocationItem();
+ m_mapScene->addItem(m_gpsLocationItem);
+
m_friendItemsHandler = new FriendItemsHandler(m_mapScene, this);
connect(this, SIGNAL(zoomLevelChanged(int)),
m_friendItemsHandler, SLOT(refactorFriendItems(int)));
+
connect(this, SIGNAL(friendsLocationsReady(QList<User*>&)),
m_friendItemsHandler, SLOT(friendListUpdated(QList<User*>&)));
}
return QRect(topLeftX, topLeftY, gridWidth, gridHeight);
}
-void MapEngine::alignImmovableItems(QPoint viewTopLeft)
-{
- qDebug() << __PRETTY_FUNCTION__ << "viewTopLeft:" << viewTopLeft;
-}
-
void MapEngine::setLocation(QPoint sceneCoordinate)
{
qDebug() << __PRETTY_FUNCTION__;
if (disableAutoCentering(sceneCoordinate))
- emit mapScrolled();
+ emit mapScrolledManually();
m_sceneCoordinate = sceneCoordinate;
emit locationChanged(m_sceneCoordinate);
m_zoomedIn = false;
m_mapScene->removeOutOfViewTiles();
}
+
+ if (m_zoomLevel == MAX_MAP_ZOOM_LEVEL)
+ emit maxZoomLevelReached();
+ else if (m_zoomLevel == MIN_VIEW_ZOOM_LEVEL)
+ emit minZoomLevelReached();
}
void MapEngine::zoomIn()
m_ownLocation->show();
}
+void MapEngine::gpsPositionUpdate(QPointF position, qreal accuracy)
+{
+ m_gpsLocationItem->updatePosition(convertLatLonToSceneCoordinate(position), accuracy);
+
+ if (m_autoCenteringEnabled)
+ setViewLocation(position);
+}
+
bool MapEngine::disableAutoCentering(QPoint sceneCoordinate)
{
if (isAutoCenteringEnabled()) {
m_autoCenteringEnabled = enabled;
}
+
+void MapEngine::gpsEnabled(bool enabled)
+{
+ m_gpsLocationItem->setEnabled(enabled);
+}
+
QPointF MapEngine::convertSceneCoordinateToLatLon(int zoomLevel, QPoint sceneCoordinate)
{
qDebug() << __PRETTY_FUNCTION__;