void CustomTrackView::rebuildGroup(AbstractGroupItem *group)
{
if (group) {
+ resetSelectionGroup(false);
+ m_scene->clearSelection();
+
QList <QGraphicsItem *> children = group->childItems();
m_document->clipManager()->removeGroup(group);
scene()->destroyItemGroup(group);
emit displayMessage(i18n("Cannot move clip to position %1", m_document->timecode().getTimecodeFromFrames(m_dragItemInfo.startPos.frames(m_document->fps()))), ErrorMessage);
}
setDocumentModified();
- }
- if (m_dragItem->type() == TRANSITIONWIDGET && (m_dragItemInfo.startPos != info.startPos || m_dragItemInfo.track != info.track)) {
+ } else if (m_dragItem->type() == TRANSITIONWIDGET && (m_dragItemInfo.startPos != info.startPos || m_dragItemInfo.track != info.track)) {
Transition *transition = static_cast <Transition *>(m_dragItem);
transition->updateTransitionEndTrack(getPreviousVideoTrack(m_dragItem->track()));
if (!m_document->renderer()->mltMoveTransition(transition->transitionTag(), (int)(m_document->tracksCount() - m_dragItemInfo.track), (int)(m_document->tracksCount() - m_dragItem->track()), transition->transitionEndTrack(), m_dragItemInfo.startPos, m_dragItemInfo.endPos, info.startPos, info.endPos)) {
} else {
// Moving several clips. We need to delete them and readd them to new position,
// or they might overlap each other during the move
- QGraphicsItemGroup *group = static_cast <QGraphicsItemGroup *>(m_dragItem->parentItem());
+ QGraphicsItemGroup *group;
+ if (m_selectionGroup)
+ group = static_cast <QGraphicsItemGroup *>(m_selectionGroup);
+ else
+ group = static_cast <QGraphicsItemGroup *>(m_dragItem->parentItem());
QList<QGraphicsItem *> items = group->childItems();
QList<ItemInfo> clipsToMove;
if (m_selectionGroup) {
m_selectionGroupInfo.startPos = GenTime(m_selectionGroup->scenePos().x(), m_document->fps());
m_selectionGroupInfo.track = m_selectionGroup->track();
+
+ for (int i = 0; i < items.count(); ++i) {
+ if (items.at(i)->type() == GROUPWIDGET)
+ rebuildGroup((AbstractGroupItem*)items.at(i));
+ }
} else {
rebuildGroup((AbstractGroupItem *)group);
}