]> git.sesse.net Git - kdenlive/commitdiff
Keep clip type (audio/video only) when copy / paste a clip
authorJean-Baptiste Mardelle <jb@kdenlive.org>
Fri, 10 Apr 2009 17:16:57 +0000 (17:16 +0000)
committerJean-Baptiste Mardelle <jb@kdenlive.org>
Fri, 10 Apr 2009 17:16:57 +0000 (17:16 +0000)
svn path=/trunk/kdenlive/; revision=3284

src/clipitem.cpp
src/customtrackview.cpp

index 51712d9a81fd0aba08c4d9ccde1b1025a4fbf52c..190343209baf75dba58a77d9bf366ef357fe71df 100644 (file)
@@ -139,6 +139,8 @@ ClipItem *ClipItem::clone(ItemInfo info) const
     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;
 }
@@ -540,6 +542,8 @@ QDomElement ClipItem::xml() const
 {
     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;
 }
 
@@ -1527,30 +1531,4 @@ bool ClipItem::isVideoOnly() const
 }
 
 
-// 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"
index fd3ac7ae0796bc60ab20e1aa6a5ddd01e4801c37..69a0a9a176212f02c63d1769d5f527eba9c986ff 100644 (file)
@@ -283,8 +283,9 @@ void CustomTrackView::mouseMoveEvent(QMouseEvent * event)
     int pos = event->x();
     int mappedXPos = (int)(mapToScene(event->pos()).x() + 0.5);
     emit mousePosition(mappedXPos);
+
     if (event->buttons() & Qt::MidButton) return;
-    if ((event->modifiers() == Qt::ControlModifier && m_tool != SPACERTOOL) || event->modifiers() == Qt::ShiftModifier) {
+    if (m_operationMode == RUBBERSELECTION || (event->modifiers() == Qt::ControlModifier && m_tool != SPACERTOOL)) {
         QGraphicsView::mouseMoveEvent(event);
         m_moveOpMode = NONE;
         return;
@@ -2846,6 +2847,8 @@ void CustomTrackView::addClip(QDomElement xml, const QString &clipId, ItemInfo i
     }
     ClipItem *item = new ClipItem(baseclip, info, m_document->fps(), xml.attribute("speed", "1").toDouble());
     item->setEffectList(effects);
+    if (xml.hasAttribute("audio_only")) item->setAudioOnly(true);
+    else if (xml.hasAttribute("video_only")) item->setVideoOnly(true);
     scene()->addItem(item);
 
     int tracknumber = m_document->tracksCount() - info.track - 1;