]> git.sesse.net Git - kdenlive/blobdiff - src/transition.cpp
some more animations (Qt 4.6)
[kdenlive] / src / transition.cpp
index 84507918c0c83d0e90b2ebfc96b1022cdc6d9e58..de83b5979eed6a3e593a81a98ebb84af42cb5bc4 100644 (file)
@@ -40,9 +40,21 @@ Transition::Transition(const ItemInfo info, int transitiontrack, double fps, QDo
 {
     setZValue(3);
     m_info.cropDuration = info.endPos - info.startPos;
-    setRect(0, 0, m_info.cropDuration.frames(fps) - 0.02, (qreal)(KdenliveSettings::trackheight() / 3 * 2 - 1));
     setPos(info.startPos.frames(fps), (qreal)(info.track * KdenliveSettings::trackheight() + KdenliveSettings::trackheight() / 3 * 2));
 
+#if QT_VERSION >= 0x040600
+    m_startAnimation = new QPropertyAnimation(this, "rect");
+    m_startAnimation->setDuration(200);
+    QRectF r(0, 0, m_info.cropDuration.frames(fps) - 0.02, 1);
+    QRectF r2(0, 0, m_info.cropDuration.frames(fps) - 0.02, (qreal)(KdenliveSettings::trackheight() / 3 * 2 - 1));
+    m_startAnimation->setStartValue(r);
+    m_startAnimation->setEndValue(r2);
+    m_startAnimation->setEasingCurve(QEasingCurve::OutQuad);
+    m_startAnimation->start();
+#else
+    setRect(0, 0, m_info.cropDuration.frames(fps) - 0.02, (qreal)(KdenliveSettings::trackheight() / 3 * 2 - 1));
+#endif
+
     m_info.cropStart = GenTime();
     m_maxDuration = GenTime(600);
 
@@ -67,6 +79,7 @@ Transition::Transition(const ItemInfo info, int transitiontrack, double fps, QDo
 Transition::~Transition()
 {
     blockSignals(true);
+    delete m_startAnimation;
     if (scene()) scene()->removeItem(this);
 }