- QList <AbstractGroupItem *> groups;
- for (int i = 0; i < selection.count(); i++) {
- if (selection.at(i)->type() == GROUPWIDGET && !groups.contains(static_cast<AbstractGroupItem *>(selection.at(i))))
- groups.append(static_cast<AbstractGroupItem *>(selection.at(i)));
- else if (selection.at(i)->parentItem() && !groups.contains(static_cast<AbstractGroupItem *>(selection.at(i)->parentItem())))
- groups.append(static_cast<AbstractGroupItem *>(selection.at(i)->parentItem()));
- }
- if (!groups.isEmpty()) {
- // ungroup previous groups
- while (!groups.isEmpty()) {
- AbstractGroupItem *grp = groups.takeFirst();
- m_document->clipManager()->removeGroup(grp);
- scene()->destroyItemGroup(grp);
- }
- selection = m_scene->selectedItems();
- }
+ foreach (QGraphicsItemGroup *value, groupsList) {
+ QList<QGraphicsItem *> children = value->childItems();
+ for (int i = 0; i < children.count(); i++) {
+ if (children.at(i)->type() == AVWIDGET || children.at(i)->type() == TRANSITIONWIDGET)
+ itemsList.insert(children.at(i));
+ }
+ AbstractGroupItem *grp = static_cast<AbstractGroupItem *>(value);
+ m_document->clipManager()->removeGroup(grp);
+ scene()->destroyItemGroup(grp);
+ }