]> git.sesse.net Git - kdenlive/commitdiff
paint drag item for transitions
authorMarco Gittler <marco@gitma.de>
Fri, 7 Mar 2008 19:07:55 +0000 (19:07 +0000)
committerMarco Gittler <marco@gitma.de>
Fri, 7 Mar 2008 19:07:55 +0000 (19:07 +0000)
svn path=/branches/KDE4/; revision=2008

src/clipitem.cpp
src/customtrackview.cpp
src/definitions.h

index 15918f1568ac3472bfbb6ada30dd099470e0664d..8f9c346495993ea86c6f67a92f6010eafdc6875f 100644 (file)
@@ -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;
 }
 
index 74488776aa2f2ccbf0851a5c6ef7f055f24865e7..069fb7401701f85918c18b406b583c0f4a3a7013 100644 (file)
@@ -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;
index ad87e9fc8f0d6db83960912642cd4f4892a5ce12..6236e3a1d721cd83bd5e731e5f03308b1c1a5fc2 100644 (file)
@@ -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 {