]> git.sesse.net Git - kdenlive/commitdiff
some more animations (Qt 4.6)
authorJean-Baptiste Mardelle <jb@kdenlive.org>
Tue, 27 Oct 2009 15:47:56 +0000 (15:47 +0000)
committerJean-Baptiste Mardelle <jb@kdenlive.org>
Tue, 27 Oct 2009 15:47:56 +0000 (15:47 +0000)
svn path=/trunk/kdenlive/; revision=4070

src/customtrackview.cpp
src/transition.cpp
src/transition.h

index 5658ceec16f8b050dc636d6a47bc52fef8ff3bd3..a97b314c96a878f191979df265f16d8d733a4b1e 100644 (file)
@@ -1911,7 +1911,13 @@ void CustomTrackView::deleteTransition(ItemInfo transitionInfo, int endTrack, QD
     }
     m_document->renderer()->mltDeleteTransition(item->transitionTag(), endTrack, m_document->tracksCount() - transitionInfo.track, transitionInfo.startPos, transitionInfo.endPos, item->toXML(), refresh);
     if (m_dragItem == item) m_dragItem = NULL;
+
+#if QT_VERSION >= 0x040600
+    // animate item deletion
+    item->closeAnimation();
+#else
     delete item;
+#endif
     emit transitionItemSelected(NULL);
     setDocumentModified();
 }
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);
 }
 
index 8009efdd32713b217777a4a080ffa03e1a78569a..69ac44e2756d13904d9051a33af1a1e64aa63010 100644 (file)
@@ -97,6 +97,10 @@ private:
 
     /** Return the transition type for a given name */
     TRANSITIONTYPE getTransitionForName(const QString & type);
+    
+#if QT_VERSION >= 0x040600
+    QPropertyAnimation *m_startAnimation;
+#endif
 };
 
 #endif