From 6188c939d5a99600b7d35dfdb407a94bacde655b Mon Sep 17 00:00:00 2001 From: Marco Gittler Date: Fri, 7 Mar 2008 19:07:55 +0000 Subject: [PATCH] paint drag item for transitions svn path=/branches/KDE4/; revision=2008 --- src/clipitem.cpp | 6 ++++++ src/customtrackview.cpp | 36 ++++++++++++++++++++++++++++++++++++ src/definitions.h | 2 +- 3 files changed, 43 insertions(+), 1 deletion(-) diff --git a/src/clipitem.cpp b/src/clipitem.cpp index 15918f15..8f9c3464 100644 --- a/src/clipitem.cpp +++ b/src/clipitem.cpp @@ -349,6 +349,10 @@ void ClipItem::paint(QPainter *painter, //painter->drawText(rect(), Qt::AlignCenter, m_name); // painter->drawRect(boundingRect()); //painter->drawRoundRect(-10, -10, 20, 20); + painter->setPen(QPen(Qt::black)); + painter->setBrush(QBrush(Qt::yellow)); + painter->drawEllipse(br.x() + 10, br.y() + br.height() / 2 - 5 , 10, 10); + painter->drawEllipse(br.x() + br.width() - 20, br.y() + br.height() / 2 - 5, 10, 10); } @@ -357,6 +361,8 @@ OPERATIONTYPE ClipItem::operationMode(QPointF pos, double scale) { else if (abs(pos.x() - rect().x()) < 6) return RESIZESTART; else if (abs(pos.x() - (rect().x() + rect().width() - scale * m_endFade)) < 6 && abs(pos.y() - rect().y()) < 6) return FADEOUT; else if (abs(pos.x() - (rect().x() + rect().width())) < 6) return RESIZEEND; + else if (abs(pos.x() - (rect().x() + 10)) < 6 && abs(pos.y() - (rect().y() + rect().height() / 2 - 5)) < 6) return TRANSITIONSTART; + else if (abs(pos.x() - (rect().x() + rect().width() - 20)) < 6 && abs(pos.y() - (rect().y() + rect().height() / 2 - 5)) < 6) return TRANSITIONEND; return MOVE; } diff --git a/src/customtrackview.cpp b/src/customtrackview.cpp index 74488776..069fb740 100644 --- a/src/customtrackview.cpp +++ b/src/customtrackview.cpp @@ -251,6 +251,42 @@ void CustomTrackView::mouseMoveEvent(QMouseEvent * event) { m_animationTimer->start(); } setCursor(Qt::PointingHandCursor); + } else if (opMode == TRANSITIONSTART) { + if (m_visualTip == NULL) { + m_visualTip = new QGraphicsEllipseItem(-5, -5 , 10, 10); + ((QGraphicsEllipseItem*) m_visualTip)->setBrush(m_tipColor); + ((QGraphicsEllipseItem*) m_visualTip)->setPen(m_tipPen); + m_visualTip->setZValue(100); + m_animation = new QGraphicsItemAnimation; + m_animation->setItem(m_visualTip); + m_animation->setTimeLine(m_animationTimer); + m_visualTip->setPos(clip->rect().x() + 15, clip->rect().y() + clip->rect().height() / 2); + double scale = 2.0; + m_animation->setScaleAt(.5, scale, scale); + scale = 1.0; + m_animation->setScaleAt(1, scale, scale); + scene()->addItem(m_visualTip); + m_animationTimer->start(); + } + setCursor(Qt::PointingHandCursor); + } else if (opMode == TRANSITIONEND) { + if (m_visualTip == NULL) { + m_visualTip = new QGraphicsEllipseItem(-5, -5 , 10, 10); + ((QGraphicsEllipseItem*) m_visualTip)->setBrush(m_tipColor); + ((QGraphicsEllipseItem*) m_visualTip)->setPen(m_tipPen); + m_visualTip->setZValue(100); + m_animation = new QGraphicsItemAnimation; + m_animation->setItem(m_visualTip); + m_animation->setTimeLine(m_animationTimer); + m_visualTip->setPos(clip->rect().x() + clip->rect().width() - 15 , clip->rect().y() + clip->rect().height() / 2); + double scale = 2.0; + m_animation->setScaleAt(.5, scale, scale); + scale = 1.0; + m_animation->setScaleAt(1, scale, scale); + scene()->addItem(m_visualTip); + m_animationTimer->start(); + } + setCursor(Qt::PointingHandCursor); } } else { m_moveOpMode = NONE; diff --git a/src/definitions.h b/src/definitions.h index ad87e9fc..6236e3a1 100644 --- a/src/definitions.h +++ b/src/definitions.h @@ -24,7 +24,7 @@ #define FRAME_SIZE 90 #define MAXCLIPDURATION 15000 -enum OPERATIONTYPE { NONE = 0, MOVE = 1, RESIZESTART = 2, RESIZEEND = 3, FADEIN = 4, FADEOUT = 5}; +enum OPERATIONTYPE { NONE = 0, MOVE = 1, RESIZESTART = 2, RESIZEEND = 3, FADEIN = 4, FADEOUT = 5, TRANSITIONSTART = 6, TRANSITIONEND = 7}; enum CLIPTYPE { UNKNOWN = 0, AUDIO = 1, VIDEO = 2, AV = 3, COLOR = 4, IMAGE = 5, TEXT = 6, SLIDESHOW = 7, VIRTUAL = 8, PLAYLIST = 9}; struct MltVideoProfile { -- 2.39.2