emit activateDocumentMonitor();
}
+void CustomTrackView::insertClipCut(DocClipBase *clip, int in, int out)
+{
+ resetSelectionGroup();
+ ItemInfo info;
+ info.startPos = GenTime();
+ info.cropStart = GenTime(in, m_document->fps());
+ info.endPos = GenTime(out - in, m_document->fps());
+ info.cropDuration = info.endPos - info.startPos;
+ info.track = 0;
+
+ // Check if clip can be inserted at that position
+ ItemInfo pasteInfo = info;
+ pasteInfo.startPos = GenTime(m_cursorPos, m_document->fps());
+ pasteInfo.endPos = pasteInfo.startPos + info.endPos;
+ pasteInfo.track = selectedTrack();
+ if (!canBePastedTo(pasteInfo, AVWIDGET)) {
+ emit displayMessage(i18n("Cannot insert clip in timeline"), ErrorMessage);
+ return;
+ }
+
+ AddTimelineClipCommand *command = new AddTimelineClipCommand(this, clip->toXML(), clip->getId(), pasteInfo, EffectsList(), m_scene->editMode() == OVERWRITEEDIT, m_scene->editMode() == INSERTEDIT, true, false);
+ m_commandStack->push(command);
+}
+
bool CustomTrackView::insertDropClips(const QMimeData *data, const QPoint pos)
{
if (data->hasFormat("kdenlive/clip")) {
void selectTransition(bool add, bool group = false);
QStringList extractTransitionsLumas();
void setEditMode(EDITMODE mode);
-
+ void insertClipCut(DocClipBase *clip, int in, int out);
public slots:
void setCursorPos(int pos, bool seek = true);
void MainWindow::slotInsertZoneToTimeline()
{
- if (!m_clipMonitor->isActive() || m_clipMonitor->activeClip() == NULL) return;
- // TODO
+ if (m_activeTimeline == NULL || m_clipMonitor->activeClip() == NULL) return;
+ QStringList info = m_clipMonitor->getZoneInfo();
+ m_activeTimeline->projectView()->insertClipCut(m_clipMonitor->activeClip(), info.at(1).toInt(), info.at(2).toInt());
}
#include "mainwindow.moc"
ProjectItem *clip;
if (m_listView->currentItem()->type() == PROJECTSUBCLIPTYPE) {
// this is a sub item, use base clip
- m_deleteAction->setEnabled(true);
+ m_deleteAction->setEnabled(true);
clip = static_cast <ProjectItem*>(m_listView->currentItem()->parent());
if (clip == NULL) kDebug() << "-----------ERROR";
SubProjectItem *sub = static_cast <SubProjectItem*>(m_listView->currentItem());
base->addCutZone(in, out);
m_listView->blockSignals(true);
SubProjectItem *sub = new SubProjectItem(clip, in, out, desc);
- if (newItem && desc.isEmpty() && !m_listView->isColumnHidden(1)) {
- if (!clip->isExpanded()) clip->setExpanded(true);
- m_listView->editItem(sub, 1);
- }
+ if (newItem && desc.isEmpty() && !m_listView->isColumnHidden(1)) {
+ if (!clip->isExpanded()) clip->setExpanded(true);
+ m_listView->editItem(sub, 1);
+ }
QPixmap p = clip->referencedClip()->thumbProducer()->extractImage(in, (int)(sub->sizeHint(0).height() * m_render->dar()), sub->sizeHint(0).height() - 2);
sub->setData(0, Qt::DecorationRole, p);
m_doc->cachePixmap(clip->getClipHash() + '#' + QString::number(in), p);