]> git.sesse.net Git - kdenlive/commitdiff
Fix drag & drop clip in project tree folder:
authorJean-Baptiste Mardelle <jb@kdenlive.org>
Sat, 20 Jun 2009 16:48:44 +0000 (16:48 +0000)
committerJean-Baptiste Mardelle <jb@kdenlive.org>
Sat, 20 Jun 2009 16:48:44 +0000 (16:48 +0000)
http://kdenlive.org/mantis/view.php?id=946

svn path=/trunk/kdenlive/; revision=3607

src/projectlist.cpp
src/projectlist.h
src/projectlistview.cpp
src/projectlistview.h

index db61f5042a4065f375d08f8e9b692e8aa1a859d3..87f3fa84ff67f259eeb67582d27e49c9f1d3533a 100644 (file)
@@ -94,7 +94,7 @@ ProjectList::ProjectList(QWidget *parent) :
     connect(m_listView, SIGNAL(pauseMonitor()), this, SLOT(slotPauseMonitor()));
     connect(m_listView, SIGNAL(requestMenu(const QPoint &, QTreeWidgetItem *)), this, SLOT(slotContextMenu(const QPoint &, QTreeWidgetItem *)));
     connect(m_listView, SIGNAL(addClip()), this, SLOT(slotAddClip()));
-    connect(m_listView, SIGNAL(addClip(const QList <QUrl>, const QString &)), this, SLOT(slotAddClip(const QList <QUrl>, const QString &)));
+    connect(m_listView, SIGNAL(addClip(const QList <QUrl>, const QString &, const QString &)), this, SLOT(slotAddClip(const QList <QUrl>, const QString &, const QString &)));
     connect(m_listView, SIGNAL(itemChanged(QTreeWidgetItem *, int)), this, SLOT(slotItemEdited(QTreeWidgetItem *, int)));
     connect(m_listView, SIGNAL(showProperties(DocClipBase *)), this, SIGNAL(showClipProperties(DocClipBase *)));
 
@@ -596,7 +596,7 @@ void ProjectList::updateAllClips()
     QTimer::singleShot(500, this, SLOT(slotCheckForEmptyQueue()));
 }
 
-void ProjectList::slotAddClip(const QList <QUrl> givenList, QString group)
+void ProjectList::slotAddClip(const QList <QUrl> givenList, const QString &groupName, const QString &groupId)
 {
     if (!m_commandStack) kDebug() << "!!!!!!!!!!!!!!!! NO CMD STK";
     KUrl::List list;
@@ -622,10 +622,10 @@ void ProjectList::slotAddClip(const QList <QUrl> givenList, QString group)
     }
     if (list.isEmpty()) return;
 
-    if (group.isEmpty()) {
+    if (givenList.isEmpty()) {
         QStringList groupInfo = getGroup();
         m_doc->slotAddClipList(list, groupInfo.at(0), groupInfo.at(1));
-    } else m_doc->slotAddClipList(list, group, QString());
+    } else m_doc->slotAddClipList(list, groupName, groupId);
 }
 
 void ProjectList::slotRemoveInvalidClip(const QString &id, bool replace)
index bcbcb33a577a6eb7ff203c35395b3850b47e99d3..081385a1de206ce9942986c68cdec7063499fb9a 100644 (file)
@@ -144,7 +144,7 @@ public slots:
     void slotRemoveInvalidClip(const QString &id, bool replace);
     void slotSelectClip(const QString &ix);
     void slotRemoveClip();
-    void slotAddClip(const QList <QUrl> givenList = QList <QUrl> (), QString group = QString());
+    void slotAddClip(const QList <QUrl> givenList = QList <QUrl> (), const QString &groupName = QString(), const QString &groupId = QString());
     void slotAddFolder(const QString foldername, const QString &clipId, bool remove, bool edit = false);
     void slotResetProjectList();
     void slotOpenClip();
index 8492e15d550ec15bb1f8804bac4d703c09e16058..8ff5485ec5c14a3b4a352a14b7a29acc91435e8b 100644 (file)
@@ -143,15 +143,17 @@ void ProjectListView::dropEvent(QDropEvent *event)
 {
     kDebug() << "////////////////  DROPPED EVENT";
     if (event->mimeData()->hasUrls()) {
-        QTreeWidgetItem *item = itemAt(event->pos());
+        ProjectItem *item = static_cast <ProjectItem *>(itemAt(event->pos()));
         QString groupName;
+        QString groupId;
         if (item) {
-            if (((ProjectItem *) item)->isGroup()) groupName = item->text(1);
-            else if (item->parent() && ((ProjectItem *) item->parent())->isGroup())
-                groupName = item->parent()->text(1);
+            if (item->parent()) item = static_cast <ProjectItem *>(item->parent());
+            if (item->isGroup()) {
+                groupName = item->groupName();
+                groupId = item->clipId();
+            }
         }
-        emit addClip(event->mimeData()->urls(), groupName);
-
+        emit addClip(event->mimeData()->urls(), groupName, groupId);
     } else if (event->mimeData()->hasFormat("kdenlive/producerslist")) {
         ProjectItem *item = static_cast <ProjectItem *>(itemAt(event->pos()));
         if (item) {
index 6dac9e73f5b1bd919725cf596bd177abdb279372..bd7b42939d72189d32cf068505faa0d9257b3c11 100644 (file)
@@ -62,7 +62,7 @@ private slots:
 signals:
     void requestMenu(const QPoint &, QTreeWidgetItem *);
     void addClip();
-    void addClip(const QList <QUrl>, const QString &);
+    void addClip(const QList <QUrl>, const QString &, const QString &);
     void showProperties(DocClipBase *);
     void focusMonitor();
     void pauseMonitor();