X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fheadertrack.cpp;h=73fc711fc6f293c98ae73d0761ce91b9389af43f;hb=56aee6aedeeed3efd10ada8fe3c229eddc01ef05;hp=2241ec9b552ce0bb0703c61f5d3fb8b9536c1bfa;hpb=05f4fad9a19434399f43ff76e06d1e1a5f74c0f6;p=kdenlive diff --git a/src/headertrack.cpp b/src/headertrack.cpp index 2241ec9b..73fc711f 100644 --- a/src/headertrack.cpp +++ b/src/headertrack.cpp @@ -23,7 +23,7 @@ #include "kdenlivesettings.h" #include -#include +#include #include #include @@ -33,7 +33,7 @@ #include #include -HeaderTrack::HeaderTrack(int index, TrackInfo info, int height, QList actions, QWidget *parent) : +HeaderTrack::HeaderTrack(int index, TrackInfo info, int height, const QList &actions, QWidget *parent) : QWidget(parent), m_index(index), m_type(info.type), @@ -56,7 +56,7 @@ HeaderTrack::HeaderTrack(int index, TrackInfo info, int height, QList 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]; @@ -168,7 +178,7 @@ void HeaderTrack::setSelectedIndex(int ix) m_isSelected = true; setBackgroundRole(QPalette::Button); setAutoFillBackground(true); - } else if (m_type != VIDEOTRACK) { + } else if (m_type != VideoTrack) { m_isSelected = false; setAutoFillBackground(false); } else { @@ -182,7 +192,7 @@ void HeaderTrack::adjustSize(int height) { // Don't show track buttons if size is too small bool smallTracks = height < 40; - if (m_type == VIDEOTRACK) + if (m_type == VideoTrack) buttonVideo->setHidden(smallTracks); buttonAudio->setHidden(smallTracks); buttonLock->setHidden(smallTracks);