From: Jean-Baptiste Mardelle Date: Tue, 27 Oct 2009 15:47:56 +0000 (+0000) Subject: some more animations (Qt 4.6) X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=b9eb65d858870989b94d23bee961eb129f0a9996;p=kdenlive some more animations (Qt 4.6) svn path=/trunk/kdenlive/; revision=4070 --- diff --git a/src/customtrackview.cpp b/src/customtrackview.cpp index 5658ceec..a97b314c 100644 --- a/src/customtrackview.cpp +++ b/src/customtrackview.cpp @@ -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(); } diff --git a/src/transition.cpp b/src/transition.cpp index 84507918..de83b597 100644 --- a/src/transition.cpp +++ b/src/transition.cpp @@ -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); } diff --git a/src/transition.h b/src/transition.h index 8009efdd..69ac44e2 100644 --- a/src/transition.h +++ b/src/transition.h @@ -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