]> git.sesse.net Git - kdenlive/commitdiff
Bézier spline widget:
authorTill Theato <root@ttill.de>
Fri, 31 Dec 2010 16:41:48 +0000 (16:41 +0000)
committerTill Theato <root@ttill.de>
Fri, 31 Dec 2010 16:41:48 +0000 (16:41 +0000)
- use rotated (90°) rectangle for handles
- highlight selected point

svn path=/trunk/kdenlive/; revision=5226

src/beziercurve/beziersplinewidget.cpp

index 3ec2bc2a0636a3b25419d45cd4ed5f2c7386d46b..8cfab9867912d8ddb3325e2033ecf9da0822b98b 100644 (file)
@@ -86,14 +86,24 @@ void BezierSplineWidget::paintEvent(QPaintEvent* event)
     // Drawing curve handles.
     p.setPen(QPen(Qt::red, 1, Qt::SolidLine));
     BPoint point;
+    QPolygon handle(4);
+    handle.setPoints(4,
+                     0,  0,
+                     3,  3,
+                     0,  6,
+                     -3, 3);
     for (int i = 0; i < m_spline.points().count(); ++i) {
         point = m_spline.points().at(i);
-        p.drawEllipse(QRectF(point.h1.x() * wWidth - 3,
-                            wHeight - 3 - point.h1.y() * wHeight, 6, 6));
+        if (i == m_currentPointIndex)
+            p.setBrush(QBrush(QColor(Qt::red), Qt::SolidPattern));
+
+        p.drawPolygon(handle.translated(point.h1.x() * wWidth, wHeight - point.h1.y() * wHeight));
         p.drawEllipse(QRectF(point.p.x() * wWidth - 3,
-                             wHeight - 3 - point.p.y() * wHeight, 6, 6));
-        p.drawEllipse(QRectF(point.h2.x() * wWidth - 3,
-                             wHeight - 3 - point.h2.y() * wHeight, 6, 6));
+                            wHeight - 3 - point.p.y() * wHeight, 6, 6));
+        p.drawPolygon(handle.translated(point.h2.x() * wWidth, wHeight - point.h2.y() * wHeight));
+
+        if ( i == m_currentPointIndex)
+            p.setBrush(QBrush(Qt::NoBrush));
     }
 }