From bc8ee8f0c739fe76c997de136d666f484e03fd34 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Mardelle Date: Wed, 5 Oct 2011 21:06:30 +0000 Subject: [PATCH] Fix timeline drawing pixel offset and remove deprecated use of matrix in QPainter svn path=/trunk/kdenlive/; revision=5944 --- src/abstractclipitem.cpp | 8 +++--- src/clipitem.cpp | 28 +++++++++---------- src/onmonitoritems/onmonitorcornersitem.cpp | 2 +- src/onmonitoritems/onmonitorrectitem.cpp | 2 +- src/onmonitoritems/rotoscoping/bpointitem.cpp | 2 +- src/transition.cpp | 14 +++++----- 6 files changed, 28 insertions(+), 28 deletions(-) diff --git a/src/abstractclipitem.cpp b/src/abstractclipitem.cpp index 1dd88629..434f44a7 100644 --- a/src/abstractclipitem.cpp +++ b/src/abstractclipitem.cpp @@ -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) { diff --git a/src/clipitem.cpp b/src/clipitem.cpp index 13274396..8e361e9f 100644 --- a/src/clipitem.cpp +++ b/src/clipitem.cpp @@ -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)); } } diff --git a/src/onmonitoritems/onmonitorcornersitem.cpp b/src/onmonitoritems/onmonitorcornersitem.cpp index 754d9eed..f2dfb131 100644 --- a/src/onmonitoritems/onmonitorcornersitem.cpp +++ b/src/onmonitoritems/onmonitorcornersitem.cpp @@ -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; diff --git a/src/onmonitoritems/onmonitorrectitem.cpp b/src/onmonitoritems/onmonitorrectitem.cpp index 0514fe8b..acf5c1fa 100644 --- a/src/onmonitoritems/onmonitorrectitem.cpp +++ b/src/onmonitoritems/onmonitorrectitem.cpp @@ -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)); diff --git a/src/onmonitoritems/rotoscoping/bpointitem.cpp b/src/onmonitoritems/rotoscoping/bpointitem.cpp index b452d78d..0c7292de 100644 --- a/src/onmonitoritems/rotoscoping/bpointitem.cpp +++ b/src/onmonitoritems/rotoscoping/bpointitem.cpp @@ -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); diff --git a/src/transition.cpp b/src/transition.cpp index 71b66c32..fe3aa518 100644 --- a/src/transition.cpp +++ b/src/transition.cpp @@ -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 -- 2.39.2