+
+void ProjectList::slotAddClipCut(const QString &id, int in, int out)
+{
+ ProjectItem *clip = getItemById(id);
+ if (clip == NULL) return;
+ if (clip->referencedClip()->hasCutZone(QPoint(in, out))) return;
+ AddClipCutCommand *command = new AddClipCutCommand(this, id, in, out, false);
+ m_commandStack->push(command);
+}
+
+void ProjectList::addClipCut(const QString &id, int in, int out)
+{
+ //m_doc->slotAddClipCut(id, in, out, groupName, groupId);
+ ProjectItem *clip = getItemById(id);
+ if (clip) {
+ DocClipBase *base = clip->referencedClip();
+ base->addCutZone(in, out);
+ m_listView->blockSignals(true);
+ SubProjectItem *sub = new SubProjectItem(clip, in, out);
+
+ QPixmap p = clip->referencedClip()->thumbProducer()->extractImage(in, (int)(sub->sizeHint(0).height() * m_render->dar()), sub->sizeHint(0).height());
+ sub->setIcon(0, p);
+ m_doc->cachePixmap(clip->getClipHash() + '#' + QString::number(in), p);
+ m_listView->blockSignals(false);
+ }
+}
+
+void ProjectList::removeClipCut(const QString &id, int in, int out)
+{
+ //m_doc->slotAddClipCut(id, in, out, groupName, groupId);
+ ProjectItem *clip = getItemById(id);
+ if (clip) {
+ DocClipBase *base = clip->referencedClip();
+ base->removeCutZone(in, out);
+ for (int i = 0; i < clip->childCount(); i++) {
+ QTreeWidgetItem *it = clip->child(i);
+ if (it->type() != QTreeWidgetItem::UserType + 1) continue;
+ SubProjectItem *sub = static_cast <SubProjectItem*>(it);
+ if (sub->zone() == QPoint(in, out)) {
+ m_listView->blockSignals(true);
+ delete it;
+ m_listView->blockSignals(false);
+ break;
+ }
+ }
+ }
+}
+