Rotation of the direction indicator triangle
authorSami Rämö <sami.ramo@ixonos.com>
Wed, 28 Jul 2010 09:31:48 +0000 (12:31 +0300)
committerSami Rämö <sami.ramo@ixonos.com>
Wed, 28 Jul 2010 09:31:48 +0000 (12:31 +0300)
src/ui/indicatorbutton.cpp

index 7187d28..9340a68 100644 (file)
@@ -253,11 +253,19 @@ void IndicatorButton::paintEvent(QPaintEvent *event)
 
     const int POINTS = 3;
     const QPointF points[POINTS] = {
-        CENTER + QPointF(-TRIANGLE_WIDTH / 2, -TRIANGLE_DISTANCE_FROM_CENTER),
-        CENTER + QPointF(0, -(TRIANGLE_DISTANCE_FROM_CENTER + TRIANGLE_HEIGHT)),
-        CENTER + QPointF(TRIANGLE_WIDTH / 2, -TRIANGLE_DISTANCE_FROM_CENTER)
+        QPointF(-TRIANGLE_WIDTH / 2, -TRIANGLE_DISTANCE_FROM_CENTER),
+        QPointF(0, -(TRIANGLE_DISTANCE_FROM_CENTER + TRIANGLE_HEIGHT)),
+        QPointF(TRIANGLE_WIDTH / 2, -TRIANGLE_DISTANCE_FROM_CENTER)
     };
 
+    QTransform rotationTransform;
+    rotationTransform.rotate(90);
+
+    QTransform translateTransform;
+    translateTransform.translate(CENTER.x(), CENTER.y());
+
+    painter.setTransform(rotationTransform * translateTransform);
+
     painter.setBrush(Qt::red);
     painter.setPen(Qt::red);
     painter.drawPolygon(points, POINTS);