+void CustomTrackView::slotAddGroupEffect(QDomElement effect, AbstractGroupItem *group) {
+ QList<QGraphicsItem *> itemList = group->childItems();
+ QUndoCommand *effectCommand = new QUndoCommand();
+ QString effectName;
+ QDomNode namenode = effect.elementsByTagName("name").item(0);
+ if (!namenode.isNull()) effectName = i18n(namenode.toElement().text().toUtf8().data());
+ else effectName = i18n("effect");
+ effectCommand->setText(i18n("Add %1", effectName));
+ int count = 0;
+ for (int i = 0; i < itemList.count(); i++) {
+ if (itemList.at(i)->type() == AVWIDGET) {
+ ClipItem *item = (ClipItem *)itemList.at(i);
+ if (item->hasEffect(effect.attribute("tag"), effect.attribute("id")) != -1 && effect.attribute("unique", "0") != "0") {
+ emit displayMessage(i18n("Effect already present in clip"), ErrorMessage);
+ continue;
+ }
+ if (item->isItemLocked()) {
+ continue;
+ }
+ item->initEffect(effect);
+ if (effect.attribute("tag") == "ladspa") {
+ QString ladpsaFile = m_document->getLadspaFile();
+ initEffects::ladspaEffectFile(ladpsaFile, effect.attribute("ladspaid").toInt(), getLadspaParams(effect));
+ effect.setAttribute("src", ladpsaFile);
+ }
+ new AddEffectCommand(this, m_document->tracksCount() - item->track(), item->startPos(), effect, true, effectCommand);
+ count++;
+ }
+ }
+ if (count > 0) {
+ m_commandStack->push(effectCommand);
+ m_document->setModified(true);
+ } else delete effectCommand;
+}
+