]> git.sesse.net Git - kdenlive/blobdiff - src/headertrack.cpp
Const'ref
[kdenlive] / src / headertrack.cpp
index 2241ec9b552ce0bb0703c61f5d3fb8b9536c1bfa..cef0b2e08de12340bb01b38ba96af280e4beabdf 100644 (file)
@@ -33,7 +33,7 @@
 #include <QTimer>
 #include <QDomDocument>
 
-HeaderTrack::HeaderTrack(int index, TrackInfo info, int height, QList <QAction *> actions, QWidget *parent) :
+HeaderTrack::HeaderTrack(int index, TrackInfo info, int height, const QList <QAction *> &actions, QWidget *parent) :
         QWidget(parent),
         m_index(index),
         m_type(info.type),
@@ -96,7 +96,7 @@ HeaderTrack::HeaderTrack(int index, TrackInfo info, int height, QList <QAction *
 {
 }*/
 
-void HeaderTrack::updateEffectLabel(QStringList effects)
+void HeaderTrack::updateEffectLabel(const QStringList &effects)
 {
     if (!effects.isEmpty()) {
         effect_label->setHidden(false);
@@ -135,9 +135,19 @@ void HeaderTrack::dropEvent(QDropEvent * event)
     const QString effects = QString::fromUtf8(event->mimeData()->data("kdenlive/effectslist"));
     QDomDocument doc;
     doc.setContent(effects, true);
-    const QDomElement e = doc.documentElement();
+    QDomElement e = doc.documentElement();
+    if (e.tagName() == "effectgroup") {
+        // dropped an effect group
+        QDomNodeList effectlist = e.elementsByTagName("effect");
+        for (int i = 0; i < effectlist.count(); ++i) {
+            effectlist.at(i).toElement().removeAttribute("kdenlive_ix");
+        }
+    } else {
+        // single effect dropped
+        e.removeAttribute("kdenlive_ix");
+    }
     emit selectTrack(m_index);
-    emit addTrackInfo(e, m_index);
+    emit addTrackEffect(e, m_index);
     /*if (scene() && !scene()->views().isEmpty()) {
         event->accept();
         CustomTrackView *view = (CustomTrackView *) scene()->views()[0];