From: Sami Rämö Date: Mon, 23 Aug 2010 10:15:33 +0000 (+0300) Subject: Fixed map jumping when starting a drag X-Git-Tag: v2.0b-1~38^2~15 X-Git-Url: https://vcs.maemo.org/git/?p=situare;a=commitdiff_plain;h=1d5c571453d5e5cba64cea19b388892ff0808cab Fixed map jumping when starting a drag --- diff --git a/src/engine/engine.cpp b/src/engine/engine.cpp index f764b48..7c2c77c 100644 --- a/src/engine/engine.cpp +++ b/src/engine/engine.cpp @@ -625,8 +625,8 @@ void SituareEngine::signalsFromMainWindow() m_facebookAuthenticator, SLOT(updateCredentials(QUrl))); // signals from map view - connect(m_ui, SIGNAL(mapViewScrolled(SceneCoordinate)), - m_mapEngine, SLOT(setCenterPosition(SceneCoordinate))); + connect(m_ui, SIGNAL(mapViewScrolled(SceneCoordinate, bool)), + m_mapEngine, SLOT(setCenterPosition(SceneCoordinate, bool))); connect(m_ui, SIGNAL(mapViewResized(QSize)), m_mapEngine, SLOT(viewResized(QSize))); @@ -692,8 +692,8 @@ void SituareEngine::signalsFromMapEngine() connect(m_mapEngine, SIGNAL(error(int, int)), this, SLOT(error(int, int))); - connect(m_mapEngine, SIGNAL(locationChanged(SceneCoordinate)), - m_ui, SIGNAL(centerToSceneCoordinates(SceneCoordinate))); + connect(m_mapEngine, SIGNAL(locationChanged(SceneCoordinate, bool)), + m_ui, SIGNAL(centerToSceneCoordinates(SceneCoordinate, bool))); connect(m_mapEngine, SIGNAL(zoomLevelChanged(int)), m_ui, SIGNAL(zoomLevelChanged(int))); diff --git a/src/map/mapengine.cpp b/src/map/mapengine.cpp index 8c2a706..a5c3d0b 100644 --- a/src/map/mapengine.cpp +++ b/src/map/mapengine.cpp @@ -423,7 +423,7 @@ void MapEngine::setAutoCentering(bool enabled) updateDirectionIndicator(); } -void MapEngine::setCenterPosition(SceneCoordinate coordinate) +void MapEngine::setCenterPosition(SceneCoordinate coordinate, bool isUserDragAction) { qDebug() << __PRETTY_FUNCTION__; @@ -439,7 +439,7 @@ void MapEngine::setCenterPosition(SceneCoordinate coordinate) disableAutoCenteringIfRequired(coordinate); m_sceneCoordinate = coordinate; - emit locationChanged(m_sceneCoordinate); + emit locationChanged(m_sceneCoordinate, isUserDragAction); if (isCenterTileChanged(coordinate)) { getTiles(coordinate); @@ -566,7 +566,7 @@ void MapEngine::viewResized(const QSize &size) m_viewSize = size; setTilesGridSize(m_viewSize); - emit locationChanged(m_sceneCoordinate); + emit locationChanged(m_sceneCoordinate, false); getTiles(m_sceneCoordinate); m_mapScene->removeOutOfViewTiles(m_viewTilesGrid, m_zoomLevel); m_mapScene->setSceneVerticalOverlap(m_viewSize.height(), m_zoomLevel); diff --git a/src/map/mapengine.h b/src/map/mapengine.h index 07db7b9..74bd5e7 100644 --- a/src/map/mapengine.h +++ b/src/map/mapengine.h @@ -322,7 +322,7 @@ private slots: * Does emit locationChanged signal. * @param coordinate Scene coordinates for new position */ - void setCenterPosition(SceneCoordinate coordinate); + void setCenterPosition(SceneCoordinate coordinate, bool isUserDragAction = false); /** * @brief Builds and sets route, also centers it @@ -407,7 +407,7 @@ signals: * * @param coordinate New scene coordinates */ - void locationChanged(SceneCoordinate coordinate); + void locationChanged(SceneCoordinate coordinate, bool isUserDragAction); /** * @brief Signal is emitted when location item is clicked. diff --git a/src/map/mapview.cpp b/src/map/mapview.cpp index e059a8e..8cdcf29 100644 --- a/src/map/mapview.cpp +++ b/src/map/mapview.cpp @@ -67,13 +67,13 @@ MapView::MapView(QWidget *parent) this, SLOT(doubleTapZoomFinished())); } -void MapView::centerToSceneCoordinates(const SceneCoordinate &coordinate, bool isUserAction) +void MapView::centerToSceneCoordinates(const SceneCoordinate &coordinate, bool isUserDragAction) { qDebug() << __PRETTY_FUNCTION__ << "coordinate" << coordinate; QPointF target = coordinate.toPointF(); - if (!isUserAction) { + if (!isUserDragAction) { target += m_centerHorizontalShift; } @@ -151,7 +151,7 @@ void MapView::mouseMoveEvent(QMouseEvent *event) m_time.start(); m_index++; - emit viewScrolled(SceneCoordinate(m_scenePosition.x(), m_scenePosition.y())); + emit viewScrolled(SceneCoordinate(m_scenePosition.x(), m_scenePosition.y()), true); m_mouseLastScenePosition = mapToScene(event->pos()).toPoint(); m_mouseLastViewPosition = event->pos(); diff --git a/src/map/mapview.h b/src/map/mapview.h index ac6797f..37fb7c7 100644 --- a/src/map/mapview.h +++ b/src/map/mapview.h @@ -134,7 +134,7 @@ public slots: * * @param coordinate Scene coordinates of the new center point */ - void centerToSceneCoordinates(const SceneCoordinate &coordinate, bool isUserAction = false); + void centerToSceneCoordinates(const SceneCoordinate &coordinate, bool isUserDragAction = false); /** * @brief Set zoom level of the view @@ -190,7 +190,7 @@ signals: * Signal is emitted when view is scrolled. * @param coordinate Scene coordinates of the new center point of the view */ - void viewScrolled(const SceneCoordinate &coordinate); + void viewScrolled(const SceneCoordinate &coordinate, bool isUserDragAction); /** * @brief Signal for informing that zooming animation is finished diff --git a/src/ui/mainwindow.cpp b/src/ui/mainwindow.cpp index 59a9282..c9e32e0 100644 --- a/src/ui/mainwindow.cpp +++ b/src/ui/mainwindow.cpp @@ -258,11 +258,11 @@ void MainWindow::buildMap() buildIndicatorButtonPanel(); buildMapScale(); - connect(m_mapView, SIGNAL(viewScrolled(SceneCoordinate)), - this, SIGNAL(mapViewScrolled(SceneCoordinate))); + connect(m_mapView, SIGNAL(viewScrolled(SceneCoordinate, bool)), + this, SIGNAL(mapViewScrolled(SceneCoordinate, bool))); - connect(this, SIGNAL(centerToSceneCoordinates(SceneCoordinate)), - m_mapView, SLOT(centerToSceneCoordinates(SceneCoordinate))); + connect(this, SIGNAL(centerToSceneCoordinates(SceneCoordinate, bool)), + m_mapView, SLOT(centerToSceneCoordinates(SceneCoordinate, bool))); connect(m_mapView, SIGNAL(viewResized(QSize)), this, SIGNAL(mapViewResized(QSize))); diff --git a/src/ui/mainwindow.h b/src/ui/mainwindow.h index 6d7d554..5d8a5b9 100644 --- a/src/ui/mainwindow.h +++ b/src/ui/mainwindow.h @@ -441,7 +441,7 @@ signals: * * @param coordinate Scene coordinates of the new center point */ - void centerToSceneCoordinates(const SceneCoordinate &coordinate); + void centerToSceneCoordinates(const SceneCoordinate &coordinate, bool isUserDragAction); /** * @brief Signal when direction and distance from current map center point to current GPS @@ -536,7 +536,7 @@ signals: * * @param coordinate */ - void mapViewScrolled(const SceneCoordinate &coordinate); + void mapViewScrolled(const SceneCoordinate &coordinate, bool isUserDragAction); /** * @brief Forwarding signal from MapEngine to MapView