}
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();
}
{
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);
Transition::~Transition()
{
blockSignals(true);
+ delete m_startAnimation;
if (scene()) scene()->removeItem(this);
}
/** Return the transition type for a given name */
TRANSITIONTYPE getTransitionForName(const QString & type);
+
+#if QT_VERSION >= 0x040600
+ QPropertyAnimation *m_startAnimation;
+#endif
};
#endif