qDebug() << __PRETTY_FUNCTION__;
/// @todo implement distance calculation
- qreal distance = 0;
+ qreal distance = greatCircleDistance(m_gpsPosition, m_sceneCoordinate);
qreal direction = m_sceneCoordinate.azimuthTo(SceneCoordinate(m_gpsPosition));
const int BUTTON_WIDTH = 66; ///< Button width
const int BUTTON_HEIGHT = 66; ///< Button height
+const qreal M_TO_KM = 1000; ///< Meters to kilometers conversion
+
IndicatorButton::IndicatorButton(QWidget *parent)
: QToolButton(parent),
m_isDraggable(false),
- m_direction(0)
+ m_direction(0),
+ m_distance(0),
+ m_distanceText("hetula")
{
m_indicatorLeds[OFF].load(":res/images/led_red.png");
m_indicatorLeds[ON].load(":res/images/led_red_s.png");
painter.drawPixmap(CENTER - offset, m_indicatorLeds[OFF]);
}
+ // Distance text
+ painter.setFont(QFont(NOKIA_FONT_SMALL));
+ painter.setPen(Qt::white);
+ painter.drawText(10, 60, m_distanceText);
+
const int TRIANGLE_WIDTH = 10;
const int TRIANGLE_HEIGHT = 10;
const int TRIANGLE_DISTANCE_FROM_CENTER = 15;
painter.setBrush(Qt::red);
painter.setPen(Qt::red);
painter.drawPolygon(points, POINTS);
+
+
}
void IndicatorButton::timerExpired()
qWarning() << __PRETTY_FUNCTION__ << "direction:" << direction;
m_direction = direction;
+ m_distance = distance;
+
+ qWarning() << "distance:" << distance;
+
+}
+
+qreal IndicatorButton::roundTo(qreal distance)
+{
+ qDebug() << __PRETTY_FUNCTION__;
+
+ if(distance < M_TO_KM)
+ {
+ m_distanceText.setNum(distance * M_TO_KM);
+ m_distanceText.append(" m");
+ } else {
+ m_distanceText.setNum(distance);
+ m_distanceText.append(" km");
+ }
}
*/
void forceMouseRelease();
+ qreal roundTo(qreal distance);
+
/**
* @brief Slot that handles drag initialization once timer has timed out
*/
bool m_isDraggable; ///< Boolean for tracking the draggability state
qreal m_direction; ///< Direction to the GPS position (in degrees)
+ qreal m_distance;
QColor *m_normalColor; ///< Normal background color
QSize m_screenSize; ///< Store for the screen size
+ QString m_distanceText;
+
QTimer *m_dragStartTimer; ///< Timer to init draggability of the distance indicator button
QTimer *m_forceReleaseTimer; ///< Timer to run forceMouseRelease
};