Direction indicator triange updating
authorSami Rämö <sami.ramo@ixonos.com>
Wed, 28 Jul 2010 10:55:32 +0000 (13:55 +0300)
committerSami Rämö <sami.ramo@ixonos.com>
Wed, 28 Jul 2010 10:55:32 +0000 (13:55 +0300)
 - fixed azimuth calculation in SceneCoordinate::azimuthTo()

 - delivering new values from MapEngine to IndicatorButton

src/coordinates/scenecoordinate.cpp
src/engine/engine.cpp
src/engine/engine.h
src/map/mapengine.cpp
src/map/mapengine.h
src/ui/indicatorbutton.cpp
src/ui/indicatorbutton.h
src/ui/mainwindow.cpp
src/ui/mainwindow.h

index e3de4c5..c4b555e 100644 (file)
@@ -55,7 +55,7 @@ SceneCoordinate::SceneCoordinate(const GeoCoordinate &coordinate)
 qreal SceneCoordinate::azimuthTo(const SceneCoordinate &to) const
 {
     QLineF line = QLineF(this->toPointF(), to.toPointF());
-    return line.angle();
+    return -line.angle() + 90.0;
 }
 
 void SceneCoordinate::convertFrom(const GeoCoordinate &coordinate)
index 9b78942..c809e26 100644 (file)
@@ -673,6 +673,9 @@ void SituareEngine::signalsFromMapEngine()
 
     connect(m_mapEngine, SIGNAL(newMapResolution(qreal)),
             m_ui, SIGNAL(newMapResolution(qreal)));
+
+    connect(m_mapEngine, SIGNAL(directionIndicatorValuesUpdate(qreal,qreal)),
+            m_ui, SIGNAL(directionIndicatorValuesUpdate(qreal,qreal)));
 }
 
 void SituareEngine::signalsFromRoutingService()
index b710b3b..35e3991 100644 (file)
@@ -292,6 +292,15 @@ signals:
     void clearUpdateLocationDialogData();
 
     /**
+    * @brief Signal when direction and distance from current map center point to current GPS
+    *        location is changed
+    *
+    * @param direction Direction in degrees
+    * @param distance Distance in kilometers
+    */
+    void directionIndicatorValuesUpdate(qreal direction, qreal distance);
+
+    /**
     * @brief Signals when new friends data is ready
     *
     * @param friendList List of User instances (friends)
index 7d839a6..f858c17 100644 (file)
@@ -549,6 +549,8 @@ int MapEngine::tilesPerSide(int zoomLevel)
 
 void MapEngine::updateDirectionIndicator()
 {
+    qDebug() << __PRETTY_FUNCTION__;
+
     /// @todo implement distance calculation
     qreal distance = 0;
 
index a651195..7faffca 100644 (file)
@@ -387,6 +387,9 @@ signals:
     /**
     * @brief Signal when direction and distance from current map center point to current GPS
     *        location is changed
+    *
+    * @param direction Direction in degrees
+    * @param distance Distance in kilometers
     */
     void directionIndicatorValuesUpdate(qreal direction, qreal distance);
 
index 8bdc29f..97d046a 100644 (file)
@@ -168,11 +168,6 @@ void IndicatorButton::mouseReleaseEvent(QMouseEvent *event)
     QToolButton::mouseReleaseEvent(event);
 }
 
-void IndicatorButton::setDirection(qreal direction)
-{
-    m_direction = direction;
-}
-
 void IndicatorButton::setDraggable(bool mode, QPoint eventPosition)
 {
     qDebug() << __PRETTY_FUNCTION__;
@@ -286,3 +281,10 @@ void IndicatorButton::timerExpired()
 
     setDraggable(true, m_dragPosition);
 }
+
+void IndicatorButton::updateValues(qreal direction, qreal distance)
+{
+    qWarning() << __PRETTY_FUNCTION__ << "direction:" << direction;
+
+    m_direction = direction;
+}
index f9572f1..9cf1eea 100644 (file)
@@ -103,7 +103,14 @@ public slots:
      */
     void screenResized(const QSize &size);
 
-    void setDirection(qreal direction);
+    /**
+    * @brief Called when direction and distance from current map center point to current GPS
+    *        location is changed
+    *
+    * @param direction Direction in degrees
+    * @param distance Distance in kilometers
+    */
+    void updateValues(qreal direction, qreal distance);
 
     /**
      * @brief Toggle distance indicator button draggability
index 7f5997f..0756168 100644 (file)
@@ -189,6 +189,9 @@ void MainWindow::buildIndicatorButton()
 
     connect(m_mapView, SIGNAL(viewResized(QSize)),
             m_indicatorButton, SLOT(screenResized(QSize)));
+
+    connect(this, SIGNAL(directionIndicatorValuesUpdate(qreal,qreal)),
+            m_indicatorButton, SLOT(updateValues(qreal,qreal)));
 }
 
 void MainWindow::buildInformationBox(const QString &message, bool modal)
index 6c0177f..f4a47d6 100644 (file)
@@ -432,6 +432,15 @@ signals:
     void centerToSceneCoordinates(const SceneCoordinate &coordinate);
 
     /**
+    * @brief Signal when direction and distance from current map center point to current GPS
+    *        location is changed
+    *
+    * @param direction Direction in degrees
+    * @param distance Distance in kilometers
+    */
+    void directionIndicatorValuesUpdate(qreal direction, qreal distance);
+
+    /**
      * @brief Signal for enabling automatic location update.
      *
      * @param enabled true if enabled, false otherwise