From ecf7219c79cfba0c7bffdf9cc8522ee845ac4e19 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Mardelle Date: Fri, 1 Feb 2013 13:06:49 +0100 Subject: [PATCH] Fix keyframe line not painted over clips in timeline --- src/abstractclipitem.cpp | 10 +++++----- src/abstractclipitem.h | 2 +- src/clipitem.cpp | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/abstractclipitem.cpp b/src/abstractclipitem.cpp index 42c31ca9..cd4c2ed1 100644 --- a/src/abstractclipitem.cpp +++ b/src/abstractclipitem.cpp @@ -258,7 +258,7 @@ GenTime AbstractClipItem::maxDuration() const return m_maxDuration; } -void AbstractClipItem::drawKeyFrames(QPainter *painter, bool limitedKeyFrames) +void AbstractClipItem::drawKeyFrames(QPainter *painter, const QTransform transformation, bool limitedKeyFrames) { if (m_keyframes.count() < 1) return; @@ -282,7 +282,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->worldTransform().map(l); + QLineF l2 = transformation.map(l); painter->setPen(QColor(168, 168, 168, 180)); painter->drawLine(l2); painter->setPen(QColor(108, 108, 108, 180)); @@ -303,7 +303,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->worldTransform().map(l); + l2 = transformation.map(l); painter->drawLine(l2); } while (i != m_keyframes.constEnd()) { @@ -323,7 +323,7 @@ void AbstractClipItem::drawKeyFrames(QPainter *painter, bool limitedKeyFrames) y2 = br.bottom() - (i.value() - m_keyframeOffset) * maxh; } QLineF l(x1, y1, x2, y2); - l2 = painter->worldTransform().map(l); + l2 = transformation.map(l); painter->drawLine(l2); if (active) { const QRectF frame(l2.x1() - 3, l2.y1() - 3, 6, 6); @@ -336,7 +336,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->worldTransform().map(l)); + painter->drawLine(transformation.map(l)); } if (active && m_keyframes.count() > 1) { diff --git a/src/abstractclipitem.h b/src/abstractclipitem.h index 47a246c6..0737952c 100644 --- a/src/abstractclipitem.h +++ b/src/abstractclipitem.h @@ -126,7 +126,7 @@ protected: * "simplekeyframe" type, the effect always starts on clip start and ends on clip end. With the * "keyframe" type, the effect starts on the first keyframe and ends on the last keyframe */ - void drawKeyFrames(QPainter *painter, bool limitedKeyFrames); + void drawKeyFrames(QPainter *painter, const QTransform transformation, bool limitedKeyFrames); int mouseOverKeyFrames(QPointF pos, double maxOffset); virtual void mousePressEvent(QGraphicsSceneMouseEvent * event); diff --git a/src/clipitem.cpp b/src/clipitem.cpp index 75c1e61c..aa86d6f2 100644 --- a/src/clipitem.cpp +++ b/src/clipitem.cpp @@ -1025,7 +1025,7 @@ void ClipItem::paint(QPainter *painter, painter->setPen(QPen(Qt::lightGray)); // draw effect or transition keyframes - drawKeyFrames(painter, m_limitedKeyFrames); + drawKeyFrames(painter, transformation, m_limitedKeyFrames); } // draw clip border -- 2.39.2