emit clipItemSelected(item, item->selectedEffectIndex());
}
} else if (m_dragItem && !m_dragItem->isItemLocked()) {
- editClipDuration();
+ editItemDuration();
} else {
QList<QGraphicsItem *> collisionList = items(event->pos());
if (collisionList.count() == 1 && collisionList.at(0)->type() == GUIDEITEM) {
}
}
-void CustomTrackView::editClipDuration()
+void CustomTrackView::editItemDuration()
{
AbstractClipItem *item;
if (m_dragItem) {
- item = m_dragItem;
- }
- else {
- GenTime pos = GenTime((int)(mapToScene(m_menuPosition).x()), m_document->fps());
- int track = (int)(mapToScene(m_menuPosition).y() / m_tracksHeight);
- item = getClipItemAt(pos, track);
+ item = m_dragItem;
+ } else {
+ if (m_scene->selectedItems().count() == 1) {
+ item = static_cast <AbstractClipItem *> (m_scene->selectedItems().at(0));
+ } else {
+ if (m_scene->selectedItems().empty()) {
+ emit displayMessage(i18n("Cannot find clip to edit"), ErrorMessage);
+ } else {
+ emit displayMessage(i18n("Cannot edit the duration of multiple items"), ErrorMessage);
+ }
+ return;
+ }
}
- if (item && !item->isItemLocked()) {
+ if (!item->isItemLocked()) {
GenTime minimum;
GenTime maximum;
if (item->type() == TRANSITIONWIDGET) {
m_commandStack->push(moveCommand);
}
}
- }
+ } else emit displayMessage(i18n("Item is locked"), ErrorMessage);
}
void CustomTrackView::editKeyFrame(const GenTime pos, const int track, const int index, const QString keyframes)
//item->moveTransition(GenTime((int) (endPos.x() - startPos.x()), m_document->fps()));
KdenliveSettings::setSnaptopoints(snap);
item->updateTransitionEndTrack(getPreviousVideoTrack(end.track));
- m_document->renderer()->mltMoveTransition(item->transitionTag(), m_document->tracksCount() - start.track, m_document->tracksCount() - end.track, item->transitionEndTrack(), start.startPos, start.endPos, end.startPos, end.endPos);
+ m_document->renderer()->mltMoveTransition(item->transitionTag(), m_document->tracksCount() - start.track, m_document->tracksCount() - item->track(), item->transitionEndTrack(), start.startPos, start.endPos, item->startPos(), item->endPos());
if (m_dragItem && m_dragItem == item) {
QPoint p;
ClipItem *transitionClip = getClipItemAt(item->startPos(), item->track());
return false;
}
+void CustomTrackView::selectFound(QString track, QString pos)
+{
+ setCursorPos(m_document->timecode().getFrameCount(pos), true);
+ slotSelectTrack(track.toInt());
+ selectClip(true);
+ int vert = verticalScrollBar()->value();
+ int hor = cursorPos();
+ ensureVisible(hor, vert + 10, 2, 2, 50, 0);
+}
+
bool CustomTrackView::findNextString(const QString &text)
{
QString marker;
m_findIndex = 0;
}
+QList<ItemInfo> CustomTrackView::findId(const QString &clipId)
+{
+ QList<ItemInfo> matchingInfo;
+ QList<QGraphicsItem *> itemList = items();
+ for (int i = 0; i < itemList.count(); i++) {
+ if (itemList.at(i)->type() == AVWIDGET) {
+ ClipItem *item = (ClipItem *)itemList.at(i);
+ if (item->clipProducer() == clipId) {
+ matchingInfo << item->info();
+ }
+ }
+ }
+ return matchingInfo;
+}
+
void CustomTrackView::copyClip()
{
qDeleteAll(m_copiedItems);
d.track_nb->setValue(ix);
d.slotUpdateName(ix);
d.setWindowTitle(i18n("Change Track Type"));
-
+
TrackInfo oldInfo = m_document->trackInfoAt(m_document->tracksCount() - ix - 1);
if (oldInfo.type == VIDEOTRACK)
d.video_track->setChecked(true);