- RazorGroupCommand *command = new RazorGroupCommand(this, clips1, transitions1, clipsCut, transitionsCut, clips2, transitions2, cutPos);
- m_commandStack->push(command);
- }
-}
-
-void CustomTrackView::slotRazorGroup(QList <ItemInfo> clips1, QList <ItemInfo> transitions1, QList <ItemInfo> clipsCut, QList <ItemInfo> transitionsCut, QList <ItemInfo> clips2, QList <ItemInfo> transitions2, GenTime cutPos, bool cut)
-{
- if (cut) {
- for (int i = 0; i < clipsCut.count(); ++i) {
- ClipItem *clip = getClipItemAt(clipsCut.at(i).startPos.frames(m_document->fps()), clipsCut.at(i).track);
- if (clip) {
- ClipItem *clipBehind = cutClip(clipsCut.at(i), cutPos, true);
- clips1 << clip->info();
- if (clipBehind != NULL)
- clips2 << clipBehind->info();
- }
- }
- /* TODO: cut transitionsCut
- * For now just append them to group1 */
- transitions1 << transitionsCut;
- doGroupClips(clips1, transitions1, true);
- doGroupClips(clips2, transitions2, true);
- } else {
- /* we might also just use clipsCut.at(0)->parentItem().
- * Do this loop just in case something went wrong during cut */
- for (int i = 0; i < clipsCut.count(); ++i) {
- ClipItem *clip = getClipItemAt(cutPos.frames(m_document->fps()), clipsCut.at(i).track);
- if (clip && clip->parentItem() && clip->parentItem()->type() == GROUPWIDGET) {
- AbstractGroupItem *group = static_cast <AbstractGroupItem *>(clip->parentItem());
- QList <QGraphicsItem *> children = group->childItems();
- QList <ItemInfo> groupClips;
- QList <ItemInfo> groupTrans;
- for (int j = 0; j < children.count(); ++j) {
- if (children.at(j)->type() == AVWIDGET)
- groupClips << ((AbstractClipItem *)children.at(j))->info();
- else if (children.at(j)->type() == TRANSITIONWIDGET)
- groupTrans << ((AbstractClipItem *)children.at(j))->info();
- }
- doGroupClips(groupClips, groupTrans, false);
- break;
- }