QDomElement e = doc.documentElement();
e.setAttribute("kdenlive_ix", 0);
CustomTrackView *view = (CustomTrackView *) scene()->views()[0];
- if (view) view->slotAddGroupEffect(e, this);
+ QPointF dropPos = event->scenePos();
+ QList<QGraphicsItem *> selection = scene()->items(dropPos);
+ AbstractClipItem *dropChild = NULL;
+ for (int i = 0; i < selection.count(); i++) {
+ if (selection.at(i)->type() == AVWIDGET) {
+ dropChild = (AbstractClipItem *) selection.at(i);
+ break;
+ }
+ }
+ if (view) view->slotAddGroupEffect(e, this, dropChild);
}
//virtual
}
}
-void CustomTrackView::slotAddGroupEffect(QDomElement effect, AbstractGroupItem *group)
+void CustomTrackView::slotAddGroupEffect(QDomElement effect, AbstractGroupItem *group, AbstractClipItem *dropTarget)
{
QList<QGraphicsItem *> itemList = group->childItems();
QUndoCommand *effectCommand = new QUndoCommand();
m_commandStack->push(effectCommand);
setDocumentModified();
} else delete effectCommand;
+ if (dropTarget) {
+ clearSelection(false);
+ m_dragItem = dropTarget;
+ m_dragItem->setSelected(true);
+ emit clipItemSelected(static_cast<ClipItem *>(dropTarget));
+ }
}
void CustomTrackView::slotAddEffect(ClipItem *clip, QDomElement effect)
void deleteClip(const QString &clipId);
/** @brief Add effect to current clip */
void slotAddEffect(QDomElement effect, GenTime pos, int track);
- void slotAddGroupEffect(QDomElement effect, AbstractGroupItem *group);
+ void slotAddGroupEffect(QDomElement effect, AbstractGroupItem *group, AbstractClipItem *dropTarget = NULL);
void addEffect(int track, GenTime pos, QDomElement effect);
void deleteEffect(int track, GenTime pos, QDomElement effect);
void updateEffect(int track, GenTime pos, QDomElement insertedEffect, bool refreshEffectStack = false);