#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);
m_clipName = clip->name();
m_producer = clip->getId();
m_clipType = clip->clipType();
- m_cropStart = GenTime();
+ m_cropStart = cropStart;
m_maxDuration = clip->maxDuration();
setAcceptDrops(true);
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,
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);
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);
}
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());
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);