- setRect(m_startPos.frames(m_fps) * scale, rect().y(), m_cropDuration.frames(m_fps) * scale, rect().height());
- QList <QGraphicsItem *> collisionList = collidingItems(Qt::IntersectsItemBoundingRect);
- for (int i = 0; i < collisionList.size(); ++i) {
- QGraphicsItem *item = collisionList.at(i);
- if (item->type() == type()) {
- GenTime diff = ((AbstractClipItem *)item)->endPos() + GenTime(1, m_fps) - m_startPos;
- setRect((m_startPos + diff).frames(m_fps) * scale, rect().y(), (m_cropDuration - diff).frames(m_fps) * scale, rect().height());
- m_startPos += diff;
- if (type() == AVWIDGET) m_cropStart += diff;
- m_cropDuration = m_cropDuration - diff;
- break;
+
+ setRect(0, 0, (qreal) m_cropDuration.frames(m_fps) * scale - .5, rect().height());
+ setPos((qreal) m_startPos.frames(m_fps) * scale, pos().y());
+ //setRect((double) m_startPos.frames(m_fps) * scale, rect().y(), (double) m_cropDuration.frames(m_fps) * scale, rect().height());
+ if (durationDiff < GenTime()) {
+ QList <QGraphicsItem *> collisionList = collidingItems(Qt::IntersectsItemBoundingRect);
+ for (int i = 0; i < collisionList.size(); ++i) {
+ QGraphicsItem *item = collisionList.at(i);
+ if (item->type() == type() && item->pos().x() < pos().x()) {
+ kDebug() << "///////// COLLISION DETECTED!!!!!!!!!";
+ GenTime diff = ((AbstractClipItem *)item)->endPos() + GenTime(1, m_fps) - m_startPos;
+ setRect(0, 0, (qreal)(m_cropDuration - diff).frames(m_fps) * scale - .5, rect().height());
+ setPos((qreal)(m_startPos + diff).frames(m_fps) * scale, pos().y());
+ m_startPos += diff;
+ if (type() == AVWIDGET) m_cropStart += diff;
+ m_cropDuration = m_cropDuration - diff;
+ break;
+ }