Fixed defects found in the review
authorSami Rämö <sami.ramo@ixonos.com>
Thu, 17 Jun 2010 14:03:05 +0000 (17:03 +0300)
committerSami Rämö <sami.ramo@ixonos.com>
Thu, 17 Jun 2010 14:03:05 +0000 (17:03 +0300)
src/map/mapscroller.cpp
src/map/mapview.cpp
src/map/mapview.h

index 65e738e..d7ad402 100644 (file)
@@ -43,7 +43,7 @@ void MapScroller::updateCurrentValue(const QVariant &value)
 {
     qDebug() << __PRETTY_FUNCTION__;
 
-    Q_ASSERT(!value.toPoint().isNull());
+    Q_ASSERT(value.type() == QVariant::Point);
 
     emit coordinateUpdated(value.toPoint());
 }
index ca24777..6b38ff4 100644 (file)
@@ -33,7 +33,7 @@
 const qreal MS_PER_S = 1000;
 
 // const values for tuning the kinetic scroll effect
-const int KINETIC_MIN_DRAG_LENGTH = 30;
+const int KINETIC_MIN_DRAG_LENGTH_VIEW_PIXELS = 30;
 const int KINETIC_MAX_TIME_FROM_LAST_MOUSE_EVENT_MS = 100;
 const int KINETIC_SCROLL_TIME_MS = 750;
 const qreal KINETIC_SPEED_TO_DISTANCE_FACTOR = 0.15 * sqrt(KINETIC_SCROLL_TIME_MS / MS_PER_S);
@@ -72,8 +72,8 @@ void MapView::mouseMoveEvent(QMouseEvent *event)
         m_index = 0;
 
     m_dragMovement[m_index] = m_mouseLastViewPosition - event->pos();
-    m_dragTime[m_index] = time.elapsed();
-    time.start();
+    m_dragTime[m_index] = m_time.elapsed();
+    m_time.start();
     m_index++;
 
     emit viewScrolled(m_scenePosition);
@@ -86,7 +86,7 @@ void MapView::mousePressEvent(QMouseEvent *event)
 {
     qDebug() << __PRETTY_FUNCTION__;
 
-    time.start();
+    m_time.start();
 
     m_scroller->stop();
 
@@ -107,7 +107,7 @@ void MapView::mouseReleaseEvent(QMouseEvent *event)
 {
     qDebug() << __PRETTY_FUNCTION__;
 
-    int elapsed = time.elapsed();
+    int elapsed = m_time.elapsed();
 
     QGraphicsView::mouseReleaseEvent(event);
 
@@ -117,21 +117,22 @@ void MapView::mouseReleaseEvent(QMouseEvent *event)
         int dragLength = 0;
         int values = 0;
         for (int i = 0; i < VALUES; i++) {
-            if (m_dragTime > 0) {
+            if (m_dragTime[i] > 0) {
                 dragViewSpeed += m_dragMovement[i] / (m_dragTime[i] / MS_PER_S);
                 dragLength += m_dragMovement[i].manhattanLength();
                 values++;
             }
         }
-        dragViewSpeed /= values;
-        dragViewSpeed *= KINETIC_SPEED_TO_DISTANCE_FACTOR;
 
-        if (dragLength >= KINETIC_MIN_DRAG_LENGTH) {
-            QPointF dragSceneSpeed = dragViewSpeed * (1 << (MAX_MAP_ZOOM_LEVEL - m_zoomLevel));
+        if (dragLength >= KINETIC_MIN_DRAG_LENGTH_VIEW_PIXELS) {
+            dragViewSpeed /= values;
+            QPointF effectViewDistance= dragViewSpeed * KINETIC_SPEED_TO_DISTANCE_FACTOR;
+            QPointF effectSceneDistance = effectViewDistance
+                                          * (1 << (MAX_MAP_ZOOM_LEVEL - m_zoomLevel));
 
             m_scroller->setDuration(KINETIC_SCROLL_TIME_MS);
             m_scroller->setStartValue(m_scenePosition);
-            m_scroller->setEndValue(m_scenePosition + dragSceneSpeed.toPoint());
+            m_scroller->setEndValue(m_scenePosition + effectSceneDistance.toPoint());
             m_scroller->start();
         }
     }
index ac2e207..1322663 100644 (file)
@@ -179,7 +179,7 @@ private:
 
     QPropertyAnimation *m_zoomAnimation;  ///< Zoom animation
 
-    QTime time;                           ///< Elapsed times in mouse events
+    QTime m_time;                         ///< Elapsed times in mouse events
 
     MapScroller *m_scroller;              ///< Kinetic scroller
 };