CustomTrackView::~CustomTrackView()
{
qDeleteAll(m_guides);
+ m_guides.clear();
m_waitingThumbs.clear();
}
//item->setZValue(10);
item->setFlag(QGraphicsItem::ItemIsMovable, false);
m_selectionGroup->addToGroup(item);
- m_waitingThumbs.append(item);
+ if (!clip->isPlaceHolder()) m_waitingThumbs.append(item);
}
updateSnapPoints(NULL, offsetList);
bool hasVideoClip = false;
QUndoCommand *addCommand = new QUndoCommand();
addCommand->setText(i18n("Add timeline clip"));
+ QList <ClipItem *> brokenClips;
for (int i = 0; i < items.count(); i++) {
ClipItem *item = static_cast <ClipItem *>(items.at(i));
clipInfo.track = m_document->tracksCount() - item->track();
if (m_document->renderer()->mltInsertClip(clipInfo, item->xml(), item->baseClip()->producer(item->track()), m_scene->editMode() == OVERWRITEEDIT, m_scene->editMode() == INSERTEDIT) == -1) {
emit displayMessage(i18n("Cannot insert clip in timeline"), ErrorMessage);
+ brokenClips.append(item);
+ continue;
}
adjustTimelineClips(m_scene->editMode(), item, ItemInfo(), addCommand);
}
item->setSelected(true);
}
- m_commandStack->push(addCommand);
+ qDeleteAll(brokenClips);
+ brokenClips.clear();
+ if (addCommand->childCount() > 0) m_commandStack->push(addCommand);
+ else delete addCommand;
setDocumentModified();
/*
}
setDocumentModified();
if (refresh) m_document->renderer()->doRefresh();
- m_waitingThumbs.append(item);
+ if (!baseclip->isPlaceHolder()) m_waitingThumbs.append(item);
m_thumbsTimer.start();
}