if (info.cropStart + (info.endPos - info.startPos) == m_cropStart + m_cropDuration) duplicate->slotSetEndThumb(m_endPix);
kDebug() << "// CLoning clip: " << (info.cropStart + (info.endPos - info.startPos)).frames(m_fps) << ", CURRENT end: " << (cropStart() + duration()).frames(m_fps);
duplicate->setEffectList(m_effectList.clone());
+ duplicate->setVideoOnly(m_videoOnly);
+ duplicate->setAudioOnly(m_audioOnly);
//duplicate->setSpeed(m_speed);
return duplicate;
}
}
-void ClipItem::refreshClip()
+void ClipItem::refreshClip(bool checkDuration)
{
- m_maxDuration = m_clip->maxDuration();
+ if (checkDuration && (m_maxDuration != m_clip->maxDuration())) {
+ m_maxDuration = m_clip->maxDuration();
+ if (m_clipType != IMAGE && m_clipType != TEXT && m_clipType != COLOR) {
+ if (m_cropStart + m_cropDuration > m_maxDuration) {
+ // Clip duration changed, make sure to stay in correct range
+ if (m_cropStart > m_maxDuration) {
+ m_cropStart = GenTime();
+ m_cropDuration = qMin(m_cropDuration, m_maxDuration);
+ updateRectGeometry();
+ } else {
+ m_cropDuration = m_maxDuration;
+ updateRectGeometry();
+ }
+ }
+ }
+ }
if (m_clipType == COLOR) {
QString colour = m_clip->getProperty("colour");
colour = colour.replace(0, 2, "#");
{
QDomElement xml = m_clip->toXML();
if (m_speed != 1.0) xml.setAttribute("speed", m_speed);
+ if (m_audioOnly) xml.setAttribute("audio_only", 1);
+ else if (m_videoOnly) xml.setAttribute("video_only", 1);
return xml;
}
}
-// virtual
-/*
-void CustomTrackView::mousePressEvent ( QMouseEvent * event )
-{
- int pos = event->x();
- if (event->modifiers() == Qt::ControlModifier)
- setDragMode(QGraphicsView::ScrollHandDrag);
- else if (event->modifiers() == Qt::ShiftModifier)
- setDragMode(QGraphicsView::RubberBandDrag);
- else {
- QGraphicsItem * item = itemAt(event->pos());
- if (item) {
- }
- else emit cursorMoved((int) mapToScene(event->x(), 0).x());
- }
- kDebug()<<pos;
- QGraphicsView::mousePressEvent(event);
-}
-
-void CustomTrackView::mouseReleaseEvent ( QMouseEvent * event )
-{
- QGraphicsView::mouseReleaseEvent(event);
- setDragMode(QGraphicsView::NoDrag);
-}
-*/
-
#include "clipitem.moc"