]> git.sesse.net Git - kdenlive/commitdiff
Fix timeline drawing pixel offset and remove deprecated use of matrix in QPainter
authorJean-Baptiste Mardelle <jb@kdenlive.org>
Wed, 5 Oct 2011 21:06:30 +0000 (21:06 +0000)
committerJean-Baptiste Mardelle <jb@kdenlive.org>
Wed, 5 Oct 2011 21:06:30 +0000 (21:06 +0000)
svn path=/trunk/kdenlive/; revision=5944

src/abstractclipitem.cpp
src/clipitem.cpp
src/onmonitoritems/onmonitorcornersitem.cpp
src/onmonitoritems/onmonitorrectitem.cpp
src/onmonitoritems/rotoscoping/bpointitem.cpp
src/transition.cpp

index 1dd88629f5c1ba21abb0139e797198593d20048d..434f44a74b9478d0f4eabb6fa96beb1460437d91 100644 (file)
@@ -273,7 +273,7 @@ void AbstractClipItem::drawKeyFrames(QPainter *painter, bool limitedKeyFrames)
         }
         y1 = br.bottom() - (m_keyframeDefault - m_keyframeOffset) * maxh;
         QLineF l(x1, y1, x2, y1);
-        QLineF l2 = painter->matrix().map(l);
+        QLineF l2 = painter->worldTransform().map(l);
         painter->setPen(QColor(168, 168, 168, 180));
         painter->drawLine(l2);
         painter->setPen(QColor(108, 108, 108, 180));
@@ -294,7 +294,7 @@ void AbstractClipItem::drawKeyFrames(QPainter *painter, bool limitedKeyFrames)
     // make sure line begins with clip beginning
     if (!limitedKeyFrames && i.key() != start) {
         QLineF l(br.x(), y1, x1, y1);
-        l2 = painter->matrix().map(l);
+        l2 = painter->worldTransform().map(l);
         painter->drawLine(l2);
     }
     while (i != m_keyframes.constEnd()) {
@@ -314,7 +314,7 @@ void AbstractClipItem::drawKeyFrames(QPainter *painter, bool limitedKeyFrames)
             y2 = br.bottom() - (i.value() - m_keyframeOffset) * maxh;
         }
         QLineF l(x1, y1, x2, y2);
-        l2 = painter->matrix().map(l);
+        l2 = painter->worldTransform().map(l);
         painter->drawLine(l2);
         if (active) {
             const QRectF frame(l2.x1() - 3, l2.y1() - 3, 6, 6);
@@ -327,7 +327,7 @@ void AbstractClipItem::drawKeyFrames(QPainter *painter, bool limitedKeyFrames)
     // make sure line ends at clip end
     if (!limitedKeyFrames && x1 != br.right()) {
         QLineF l(x1, y1, br.right(), y1);
-        painter->drawLine(painter->matrix().map(l));
+        painter->drawLine(painter->worldTransform().map(l));
     }
 
     if (active && m_keyframes.count() > 1) {
index 132743963666263c3928573cb16c82520b5d855c..8e361e9f53cfbcf477800ec32358cdf263d438d7 100644 (file)
@@ -740,17 +740,17 @@ void ClipItem::paint(QPainter *painter,
     if (isSelected() || (parentItem() && parentItem()->isSelected())) {
         paintColor = paintColor.darker();
         framePen.setColor(Qt::red);
-        framePen.setWidth(2);
+        framePen.setWidthF(2.0);
     }
     else {
         framePen.setColor(paintColor.darker());
     }
 
     const QRectF exposed = option->exposedRect;
-    painter->fillRect(exposed, paintColor);
     painter->setClipRect(exposed);
-    painter->setMatrixEnabled(false);
-    const QRectF mapped = painter->matrix().mapRect(rect()).adjusted(0, 0, 1.0, 0.5);
+    painter->fillRect(exposed, paintColor);
+    painter->setWorldMatrixEnabled(false);;
+    const QRectF mapped = painter->worldTransform().mapRect(rect());
     // draw thumbnails
     if (KdenliveSettings::videothumbnails() && !isAudioOnly()) {
         QPen pen = painter->pen();
@@ -774,7 +774,7 @@ void ClipItem::paint(QPainter *painter,
         }
 
         // if we are in full zoom, paint thumbnail for every frame
-        if (m_clip->thumbProducer() && clipType() != COLOR && clipType() != AUDIO && !m_audioOnly && painter->matrix().m11() == FRAME_SIZE) {
+        if (m_clip->thumbProducer() && clipType() != COLOR && clipType() != AUDIO && !m_audioOnly && painter->worldTransform().m11() == FRAME_SIZE) {
             int offset = (m_info.startPos - m_info.cropStart).frames(m_fps);
             int left = qMax((int) m_info.cropStart.frames(m_fps) + 1, (int) mapToScene(exposed.left(), 0).x() - offset);
             int right = qMin((int)(m_info.cropStart + m_info.cropDuration).frames(m_fps) - 1, (int) mapToScene(exposed.right(), 0).x() - offset);
@@ -830,15 +830,15 @@ void ClipItem::paint(QPainter *painter,
             mappedRect.setTop(mappedRect.bottom() - mapped.height() / 2);
         } else mappedRect = mapped;
 
-        double scale = painter->matrix().m11();
+        double scale = painter->worldTransform().m11();
         int channels = 0;
         if (isEnabled() && m_clip) channels = m_clip->getProperty("channels").toInt();
         if (scale != m_framePixelWidth)
             m_audioThumbCachePic.clear();
         double cropLeft = m_info.cropStart.frames(m_fps);
         const int clipStart = mappedRect.x();
-        const int mappedStartPixel =  painter->matrix().map(QPointF(startpixel + cropLeft, 0)).x() - clipStart;
-        const int mappedEndPixel =  painter->matrix().map(QPointF(endpixel + cropLeft, 0)).x() - clipStart;
+        const int mappedStartPixel =  painter->worldTransform().map(QPointF(startpixel + cropLeft, 0)).x() - clipStart;
+        const int mappedEndPixel =  painter->worldTransform().map(QPointF(endpixel + cropLeft, 0)).x() - clipStart;
         cropLeft = cropLeft * scale;
 
         if (channels >= 1) {
@@ -905,13 +905,13 @@ void ClipItem::paint(QPainter *painter,
                 if (pos > GenTime()) {
                     if (pos > cropDuration()) break;
                     QLineF l(rect().x() + pos.frames(m_fps), rect().y(), rect().x() + pos.frames(m_fps), rect().bottom());
-                    QLineF l2 = painter->matrix().map(l);
+                    QLineF l2 = painter->worldTransform().map(l);
                     painter->setPen(pen);
                     painter->drawLine(l2);
                     if (KdenliveSettings::showmarkers()) {
                         framepos = rect().x() + pos.frames(m_fps);
                         const QRectF r1(framepos + 0.04, 10, rect().width() - framepos - 2, rect().height() - 10);
-                        const QRectF r2 = painter->matrix().mapRect(r1);
+                        const QRectF r2 = painter->worldTransform().mapRect(r1);
                         const QRectF txtBounding3 = painter->boundingRect(r2, Qt::AlignLeft | Qt::AlignTop, ' ' + (*it).comment() + ' ');
                         painter->setBrush(markerBrush);
                         painter->setPen(Qt::NoPen);
@@ -937,7 +937,7 @@ void ClipItem::paint(QPainter *painter,
             fadeInPath.lineTo(0, rect().height());
             fadeInPath.lineTo(m_startFade, 0);
             fadeInPath.closeSubpath();
-            QPainterPath f1 = painter->matrix().map(fadeInPath);
+            QPainterPath f1 = painter->worldTransform().map(fadeInPath);
             painter->fillPath(f1/*.intersected(resultClipPath)*/, fades);
             /*if (isSelected()) {
                 QLineF l(m_startFade * scale, 0, 0, itemHeight);
@@ -950,7 +950,7 @@ void ClipItem::paint(QPainter *painter,
             fadeOutPath.lineTo(rect().width(), rect().height());
             fadeOutPath.lineTo(rect().width() - m_endFade, 0);
             fadeOutPath.closeSubpath();
-            QPainterPath f1 = painter->matrix().map(fadeOutPath);
+            QPainterPath f1 = painter->worldTransform().map(fadeOutPath);
             painter->fillPath(f1/*.intersected(resultClipPath)*/, fades);
             /*if (isSelected()) {
                 QLineF l(itemWidth - m_endFade * scale, 0, itemWidth, itemHeight);
@@ -969,10 +969,10 @@ void ClipItem::paint(QPainter *painter,
     painter->setClipping(false);
     painter->setPen(framePen);
     if (isSelected() || (parentItem() && parentItem()->isSelected())) {
-        painter->drawRect(mapped.adjusted(1.0, 0.5, -1.5, -0.5));
+        painter->drawRect(mapped.adjusted(0.5, 0.5, -0.5, -0.5));
     }
     else {
-        painter->drawRect(mapped.adjusted(0, 0.5, -0.5, -0.5));
+        painter->drawRect(mapped.adjusted(0, 0, -0.5, -0.5));
     }
 }
 
index 754d9eeda14ccb4e90341ed4e0c480c79ff66bf8..f2dfb1311d816303091be61cdd121f99a4e6db2c 100644 (file)
@@ -163,7 +163,7 @@ void OnMonitorCornersItem::paint(QPainter* painter, const QStyleOptionGraphicsIt
     if (polygon().count() != 4)
         return;
 
-    double baseSize = 1 / painter->matrix().m11();
+    double baseSize = 1 / painter->worldTransform().m11();
     painter->setRenderHint(QPainter::Antialiasing);
     painter->setBrush(QBrush(isEnabled() ? Qt::yellow : Qt::red));
     double handleSize = 4  * baseSize;
index 0514fe8bf60e0e20445964b64220b4d0c9206cb4..acf5c1faf673aa219afdceb31ab1c9543e874676 100644 (file)
@@ -264,7 +264,7 @@ void OnMonitorRectItem::paint(QPainter* painter, const QStyleOptionGraphicsItem*
     painter->drawRect(option->rect);
 
     if (isEnabled()) {
-        double handleSize = 6 / painter->matrix().m11();
+        double handleSize = 6 / painter->worldTransform().m11();
         double halfHandleSize = handleSize / 2;
         painter->fillRect(-halfHandleSize, -halfHandleSize, handleSize, handleSize, QColor(Qt::yellow));
         painter->fillRect(option->rect.width() - halfHandleSize, -halfHandleSize, handleSize, handleSize, QColor(Qt::yellow));
index b452d78de285a67a126cfc619910e9f198f7a907..0c7292de326fb1308ca4f070140f3ab33703c22c 100644 (file)
@@ -82,7 +82,7 @@ void BPointItem::paint(QPainter* painter, const QStyleOptionGraphicsItem* option
     }
     painter->setRenderHint(QPainter::Antialiasing);
 
-    double handleSize = 6 / painter->matrix().m11();
+    double handleSize = 6 / painter->worldTransform().m11();
     double handleSizeHalf = handleSize / 2;
 
     QPolygonF handle = QPolygonF() << QPointF(0, -handleSizeHalf) << QPointF(handleSizeHalf, 0) << QPointF(0, handleSizeHalf) << QPointF(-handleSizeHalf, 0);
index 71b66c32dd2218dc432ed3238e1743b5274c8d44..fe3aa518e7c265bbb993e780ea97f5adebadcdb6 100644 (file)
@@ -58,8 +58,8 @@ Transition::Transition(const ItemInfo &info, int transitiontrack, double fps, QD
     m_info.cropStart = GenTime();
     m_maxDuration = GenTime(600);
 
-    if (m_automaticTransition) setBrush(QColor(200, 200, 50, 100));
-    else setBrush(QColor(200, 100, 50, 100));
+    if (m_automaticTransition) setBrush(QColor(200, 200, 50, 180));
+    else setBrush(QColor(200, 100, 50, 180));
 
     //m_referenceClip = clipa;
     if (params.isNull()) {
@@ -114,10 +114,10 @@ void Transition::setAutomatic(bool automatic)
     m_automaticTransition = automatic;
     if (automatic) {
         m_parameters.setAttribute("automatic", 1);
-        setBrush(QColor(200, 200, 50, 150));
+        setBrush(QColor(200, 200, 50, 180));
     } else {
         m_parameters.removeAttribute("automatic");
-        setBrush(QColor(200, 50, 50, 150));
+        setBrush(QColor(200, 100, 50, 180));
     }
     update();
 }
@@ -171,12 +171,12 @@ void Transition::paint(QPainter *painter,
     painter->setClipRect(exposed);
     const QRectF br = rect();
     QPen framePen;
-    const QRectF mapped = painter->matrix().mapRect(br);
+    const QRectF mapped = painter->worldTransform().mapRect(br);
 
     painter->fillRect(exposed, brush());
 
     QPointF p1(br.x(), br.y() + br.height() / 2 - 7);
-    painter->setMatrixEnabled(false);
+    painter->setWorldMatrixEnabled(false);
     const QString text = m_name + (m_forceTransitionTrack ? "|>" : QString());
 
     // Draw clip name
@@ -200,7 +200,7 @@ void Transition::paint(QPainter *painter,
     // Draw frame
     painter->setPen(framePen);
     painter->setClipping(false);
-    painter->drawRect(mapped.adjusted(1.0, 0, -1.0, 0));
+    painter->drawRect(mapped.adjusted(0, 0, -0.5, -0.5));
 }
 
 int Transition::type() const