]> git.sesse.net Git - kdenlive/blobdiff - src/headertrack.cpp
First steps towards track effects
[kdenlive] / src / headertrack.cpp
index 3165a482829aa3f80ecc9698586fde3478f95733..063f4b8a9cd356df2063575542946d2fcb0e53f5 100644 (file)
@@ -31,6 +31,7 @@
 #include <QAction>
 #include <QTimer>
 #include <QColor>
+#include <QDomDocument>
 
 HeaderTrack::HeaderTrack(int index, TrackInfo info, int height, QWidget *parent) :
         QWidget(parent),
@@ -54,6 +55,8 @@ HeaderTrack::HeaderTrack(int index, TrackInfo info, int height, QWidget *parent)
     buttonLock->setChecked(info.isLocked);
     buttonLock->setToolTip(i18n("Lock track"));
 
+    setAcceptDrops(true);
+
     QPalette p = palette();
     KColorScheme scheme(p.currentColorGroup(), KColorScheme::Window);
     p.setColor(QPalette::Button, scheme.background(KColorScheme::ActiveBackground).color().darker(120));
@@ -140,6 +143,28 @@ void HeaderTrack::mouseDoubleClickEvent(QMouseEvent* event)
     QWidget::mouseDoubleClickEvent(event);
 }
 
+//virtual
+void HeaderTrack::dropEvent(QDropEvent * event)
+{
+    const QString effects = QString(event->mimeData()->data("kdenlive/effectslist"));
+    QDomDocument doc;
+    doc.setContent(effects, true);
+    const QDomElement e = doc.documentElement();
+    emit addTrackInfo(e, m_index);
+    /*if (scene() && !scene()->views().isEmpty()) {
+        event->accept();
+        CustomTrackView *view = (CustomTrackView *) scene()->views()[0];
+        if (view) view->slotAddEffect(e, m_info.startPos, track());
+    }*/
+}
+
+//virtual
+void HeaderTrack::dragEnterEvent(QDragEnterEvent *event)
+{
+    if (buttonLock->isChecked()) event->setAccepted(false);
+    else event->setAccepted(event->mimeData()->hasFormat("kdenlive/effectslist"));
+}
+
 void HeaderTrack::setSelectedIndex(int ix)
 {
     if (m_index == ix) {