]> git.sesse.net Git - kdenlive/commitdiff
Fix clip cropstart when loading document
authorJean-Baptiste Mardelle <jb@kdenlive.org>
Tue, 27 May 2008 11:10:47 +0000 (11:10 +0000)
committerJean-Baptiste Mardelle <jb@kdenlive.org>
Tue, 27 May 2008 11:10:47 +0000 (11:10 +0000)
svn path=/branches/KDE4/; revision=2200

src/clipitem.cpp
src/clipitem.h
src/customtrackview.cpp
src/trackview.cpp

index 3c811e7b1caca7181371f703f3af66ac50332430..76eb5e0874302c7f069094fd68a8fc7f3d06f250 100644 (file)
@@ -39,7 +39,7 @@
 #include "kdenlivesettings.h"
 #include "kthumb.h"
 
-ClipItem::ClipItem(DocClipBase *clip, ItemInfo info, double scale, double fps)
+ClipItem::ClipItem(DocClipBase *clip, ItemInfo info, GenTime cropStart, double scale, double fps)
         : AbstractClipItem(info, QRectF()), m_clip(clip), m_resizeMode(NONE), m_grabPoint(0), m_maxTrack(0), m_hasThumbs(false), startThumbTimer(NULL), endThumbTimer(NULL), m_effectsCounter(1), audioThumbWasDrawn(false), m_opacity(1.0), m_timeLine(0), m_thumbsRequested(0), m_hover(false) {
     QRectF rect((double) info.startPos.frames(fps) * scale, (double)(info.track * KdenliveSettings::trackheight() + 1), (double)(info.endPos - info.startPos).frames(fps) * scale, (double)(KdenliveSettings::trackheight() - 1));
     setRect(rect);
@@ -48,7 +48,7 @@ ClipItem::ClipItem(DocClipBase *clip, ItemInfo info, double scale, double fps)
     m_clipName = clip->name();
     m_producer = clip->getId();
     m_clipType = clip->clipType();
-    m_cropStart = GenTime();
+    m_cropStart = cropStart;
 
     m_maxDuration = clip->maxDuration();
     setAcceptDrops(true);
index 64dde38a6107e4c798371e7c7dd40808c704419f..7703bfdf3d400ac2d63eba2e1f62a0d0f496c96f 100644 (file)
@@ -38,7 +38,7 @@ class ClipItem : public AbstractClipItem {
     Q_OBJECT
 
 public:
-    ClipItem(DocClipBase *clip, ItemInfo info, double scale, double fps);
+    ClipItem(DocClipBase *clip, ItemInfo info, GenTime cropStart, double scale, double fps);
     virtual ~ ClipItem();
     virtual void paint(QPainter *painter,
                        const QStyleOptionGraphicsItem *option,
index 25f5649c0713fb7436ab27647f395f889398284c..a95a0798228b240b20877929d1bcf1cafcbf3d2b 100644 (file)
@@ -602,7 +602,7 @@ void CustomTrackView::cutClip(ItemInfo info, GenTime cutTime, bool cut) {
         newPos.startPos = cutTime;
         newPos.endPos = info.endPos;
         newPos.track = info.track;
-        ClipItem *dup = new ClipItem(item->baseClip(), newPos, m_scale, m_document->fps());
+        ClipItem *dup = new ClipItem(item->baseClip(), newPos, item->cropStart(), m_scale, m_document->fps());
         dup->setCropStart(dup->cropStart() + (cutTime - info.startPos));
         item->resizeEnd(cutPos, m_scale);
         scene()->addItem(dup);
@@ -663,7 +663,7 @@ void CustomTrackView::addItem(DocClipBase *clip, QPoint pos) {
     info.endPos = info.startPos + clip->duration();
     info.track = (int)(pos.y() / m_tracksHeight);
     //kDebug()<<"------------  ADDING CLIP ITEM----: "<<info.startPos.frames(25)<<", "<<info.endPos.frames(25)<<", "<<info.track;
-    m_dropItem = new ClipItem(clip, info, m_scale, m_document->fps());
+    m_dropItem = new ClipItem(clip, info, GenTime(), m_scale, m_document->fps());
     scene()->addItem(m_dropItem);
 }
 
@@ -926,7 +926,8 @@ void CustomTrackView::cutSelectedClips() {
 
 void CustomTrackView::addClip(QDomElement xml, int clipId, ItemInfo info) {
     DocClipBase *baseclip = m_document->clipManager()->getClipById(clipId);
-    ClipItem *item = new ClipItem(baseclip, info, m_scale, m_document->fps());
+       int crop = xml.attribute("in").toInt();
+    ClipItem *item = new ClipItem(baseclip, info, GenTime(crop, m_document->fps()), m_scale, m_document->fps());
     scene()->addItem(item);
     baseclip->addReference();
     m_document->updateClip(baseclip->getId());
index bea6710257b88d27ef6ad9ed08581ed56732cd82..43843046e259ea7f348e9e5db3486dcb346013f2 100644 (file)
@@ -308,7 +308,7 @@ int TrackView::slotAddProjectTrack(int ix, QDomElement xml, bool videotrack) {
                 clipinfo.endPos = clipinfo.startPos + GenTime(out - in, m_doc->fps());
                 clipinfo.track = ix;
                 //kDebug() << "// INSERTING CLIP: " << in << "x" << out << ", track: " << ix << ", ID: " << id << ", SCALE: " << m_scale << ", FPS: " << m_doc->fps();
-                ClipItem *item = new ClipItem(clip, clipinfo, m_scale, m_doc->fps());
+                ClipItem *item = new ClipItem(clip, clipinfo, GenTime(in, m_doc->fps()), m_scale, m_doc->fps());
                 m_scene->addItem(item);
                 position += (out - in);