}
bool collision = false;
for (int i = 0; i < collidingItems.count(); i++) {
- if (!collidingItems.at(i)->isEnabled()) continue;
+ if (!collidingItems.at(i)->isEnabled()) continue;
if (collidingItems.at(i)->type() == AVWIDGET) {
collision = true;
break;
// razor tool over a clip, display current frame in monitor
if (false && !m_blockRefresh && item->type() == AVWIDGET) {
//TODO: solve crash when showing frame when moving razor over clip
- emit showClipFrame(((ClipItem *) item)->baseClip(), mappedXPos - (clip->startPos() - clip->cropStart()).frames(m_document->fps()));
+ emit showClipFrame(((ClipItem *) item)->baseClip(), QPoint(), mappedXPos - (clip->startPos() - clip->cropStart()).frames(m_document->fps()));
}
event->accept();
return;
if (event->modifiers() == Qt::ControlModifier) {
// Ctrl + click, select all items on track after click position
int track = (int)(mapToScene(m_clickEvent).y() / m_tracksHeight);
- if (m_document->trackInfoAt(m_document->tracksCount() - track - 1).isLocked) {
+ if (m_document->trackInfoAt(m_document->tracksCount() - track - 1).isLocked) {
// Cannot use spacer on locked track
emit displayMessage(i18n("Cannot use spacer in a locked track"), ErrorMessage);
- return;
- }
-
+ return;
+ }
+
QRectF rect(mapToScene(m_clickEvent).x(), track * m_tracksHeight + m_tracksHeight / 2, sceneRect().width() - mapToScene(m_clickEvent).x(), m_tracksHeight / 2 - 2);
bool isOk;
for (int i = 0; i < selection.count(); i++) {
if (selection.at(i)->parentItem() == 0 && (selection.at(i)->type() == AVWIDGET || selection.at(i)->type() == TRANSITIONWIDGET)) {
AbstractClipItem *item = static_cast<AbstractClipItem *>(selection.at(i));
- if (item->isItemLocked()) continue;
+ if (item->isItemLocked()) continue;
offsetList.append(item->startPos());
offsetList.append(item->endPos());
m_selectionGroup->addToGroup(selection.at(i));
selection.at(i)->setFlag(QGraphicsItem::ItemIsMovable, false);
} else if (selection.at(i)->parentItem() == 0 && selection.at(i)->type() == GROUPWIDGET) {
- if (static_cast<AbstractGroupItem *>(selection.at(i))->isItemLocked()) continue;
+ if (static_cast<AbstractGroupItem *>(selection.at(i))->isItemLocked()) continue;
QList<QGraphicsItem *> children = selection.at(i)->childItems();
for (int j = 0; j < children.count(); j++) {
AbstractClipItem *item = static_cast<AbstractClipItem *>(children.at(j));
m_selectionGroup->addToGroup(selection.at(i));
selection.at(i)->setFlag(QGraphicsItem::ItemIsMovable, false);
} else if (selection.at(i)->parentItem()) {
- if (static_cast<AbstractGroupItem *>(selection.at(i)->parentItem())->isItemLocked()) continue;
+ if (static_cast<AbstractGroupItem *>(selection.at(i)->parentItem())->isItemLocked()) continue;
m_selectionGroup->addToGroup(selection.at(i)->parentItem());
selection.at(i)->parentItem()->setFlag(QGraphicsItem::ItemIsMovable, false);
}
kDebug() << " WARNING))))))))) CLIP NOT FOUND : " << list.at(0);
return false;
}
- const QPointF framePos = mapToScene(pos);
+ QPointF framePos = mapToScene(pos);
ItemInfo info;
info.startPos = GenTime();
info.cropStart = GenTime(list.at(1).toInt(), m_document->fps());
pasteInfo.startPos = GenTime((int)(framePos.x() + 0.5), m_document->fps());
pasteInfo.endPos = pasteInfo.startPos + info.endPos;
pasteInfo.track = (int)(framePos.y() / m_tracksHeight);
+ framePos.setX((int)(framePos.x() + 0.5));
+ framePos.setY(pasteInfo.track * m_tracksHeight);
if (!canBePastedTo(pasteInfo, AVWIDGET)) {
return true;
}
QList <GenTime> offsetList;
QList <ItemInfo> infoList;
- const QPointF framePos = mapToScene(pos);
+ QPointF framePos = mapToScene(pos);
GenTime start = GenTime((int)(framePos.x() + 0.5), m_document->fps());
int track = (int)(framePos.y() / m_tracksHeight);
+ framePos.setX((int)(framePos.x() + 0.5));
+ framePos.setY(track * m_tracksHeight);
// Check if clips can be inserted at that position
for (int i = 0; i < ids.size(); ++i) {
int length = m_document->renderer()->mltGetSpaceLength(pos, m_document->tracksCount() - track, true);
//kDebug() << "// GOT LENGT; " << length;
if (length <= 0) {
- emit displayMessage(i18n("You must be in an empty space to remove space (time: %1, track:%2)", m_document->timecode().getTimecodeFromFrames(mapToScene(m_menuPosition).x()), track), ErrorMessage);
+ emit displayMessage(i18n("You must be in an empty space to remove space (time: %1, track: %2)", m_document->timecode().getTimecodeFromFrames(mapToScene(m_menuPosition).x()), track), ErrorMessage);
return;
}
} else {
AbstractClipItem *item = NULL;
for (int i = 0; i < clips.count(); ++i) {
- if (clips.count() == 1 || clips.at(i)->type() == AVWIDGET) {
+ if (clips.at(i)->type() == AVWIDGET) {
item = static_cast < AbstractClipItem *>(clips.at(i));
if (clips.count() > 1 && item->startPos().frames(m_document->fps()) <= m_cursorPos && item->endPos().frames(m_document->fps()) >= m_cursorPos) break;
}