Draw direction indicator triangle only when GPS location item is not visible
[situare] / src / ui / indicatorbutton.cpp
index 5016eb4..1f2c8e8 100644 (file)
@@ -41,6 +41,7 @@ const int BUTTON_HEIGHT = 66;   ///< Button height
 
 IndicatorButton::IndicatorButton(QWidget *parent)
     : QToolButton(parent),
+      m_drawTriangle(false),
       m_isDraggable(false),
       m_direction(0)
 {
@@ -247,8 +248,9 @@ void IndicatorButton::paintEvent(QPaintEvent *event)
         painter.drawPixmap(CENTER - offset, m_indicatorLeds[OFF]);
     }
 
-    // draw the direction indicator triangle only when auto centering is not enabled
-    if (!isChecked()) {
+    // draw the direction indicator triangle only when autocentering is disabled and MapEngine
+    // doesn't deny drawing (because GPS location item is visible)
+    if (!isChecked() && m_drawTriangle) {
         const int TRIANGLE_WIDTH = 10;
         const int TRIANGLE_HEIGHT = 10;
         const int TRIANGLE_DISTANCE_FROM_CENTER = 15;
@@ -289,9 +291,10 @@ void IndicatorButton::timerExpired()
     setDraggable(true, m_dragPosition);
 }
 
-void IndicatorButton::updateValues(qreal direction, qreal distance)
+void IndicatorButton::updateValues(qreal direction, qreal distance, bool draw)
 {
-    qWarning() << __PRETTY_FUNCTION__ << "direction:" << direction;
+    qDebug() << __PRETTY_FUNCTION__;
 
     m_direction = direction;
+    m_drawTriangle = draw;
 }