libandroidplugin added
[mardrone] / mardrone / gauges / gaugearc.cpp
index 3886d17..5326be3 100644 (file)
@@ -32,7 +32,7 @@ void GaugeArc::paintArcScale(QPainter *painter,int width,int height)
     int xo=(width/2);
     int yo=(height/2);
     int arcsize=xo-5;
-    painter->setTransform(QTransform().scale(m_scale,m_scale));
+     painter->setTransform(QTransform().translate(scenePos().x()+width/2,scenePos().y()+height/2).scale(m_scale,m_scale));
     QTransform savematrix= painter->transform ();
     QPen pen(m_color);
     pen.setWidth(m_lineWidth);
@@ -43,29 +43,29 @@ void GaugeArc::paintArcScale(QPainter *painter,int width,int height)
     QBrush backBrush(m_backColor);
    // QBrush cbrush(m_color);
     painter->setBrush(cbrush);
-    alpha=m_lowPosition;
+    alpha=0;
     int val=m_low;
     painter->setFont(m_font);
     QFontMetrics fm(m_font);
     QPolygon needle;
 
-    painter->setTransform(QTransform().translate(xo+scenePos().x()/m_scale, yo+scenePos().y()/m_scale),true);
+    //painter->setTransform(QTransform().translate(xo+scenePos().x()/m_scale, yo+scenePos().y()/m_scale),true);
     painter->setBrush(backBrush);
     painter->setPen(nopen);
     painter->drawChord(QRect(-xo,-xo,2*xo,2*xo),0,360*16);
     painter->setBrush(cbrush);
     painter->setPen(pen);
-    qDebug() << "paintArcScale" << m_lowPosition << m_highPosition;
-    while(alpha<=(m_highPosition<m_lowPosition?m_highPosition+360:m_highPosition)) {
+    painter->setTransform(QTransform().rotate(m_lowPosition),true);
+    painter->drawArc(-arcsize,-arcsize,2*arcsize,2*arcsize,(int(270)%360)*-16,(int(m_highPosition)%360)*-16);
+    while(alpha<=m_highPosition) {
         QTransform rotT;
-        rotT.rotate(alpha);
+        rotT.rotate(alpha+m_lowPosition);
         QString label;
         label=QString("%1").arg(val);
         int labelWidth=fm.width(label);
         int labelHeight=fm.height();
         painter->setTransform(savematrix);
-        painter->setTransform(QTransform().translate(xo+scenePos().x()/m_scale, yo+scenePos().y()/m_scale),true);
-        painter->drawArc(-arcsize,-arcsize,2*arcsize,2*arcsize,(int(m_lowPosition+270)%360)*-16,(int(m_highPosition+270)%360)*-16);
+
         QPoint labelP=QPoint(0,-xo+15);
         labelP=rotT.map(labelP);
         QPoint lineInP=QPoint(0,-xo+2);
@@ -77,7 +77,7 @@ void GaugeArc::paintArcScale(QPainter *painter,int width,int height)
    //      qDebug() << alpha << labelP << labelPd << labelPo << labelWidth << labelHeight;
         painter->drawText(labelPd,label);
         painter->drawLine(lineInP,lineOutP);
-        alpha+=m_tickSpacing;
+        alpha+=m_tickSpacing?m_tickSpacing:10;
         val+=m_tickIncrement;
     }
     needle+=QPoint(-5,0);