]> git.sesse.net Git - kdenlive/commitdiff
Fix wrong usage of QDomElement, which will help with bug:
authorJean-Baptiste Mardelle <jb@kdenlive.org>
Mon, 30 Mar 2009 20:28:19 +0000 (20:28 +0000)
committerJean-Baptiste Mardelle <jb@kdenlive.org>
Mon, 30 Mar 2009 20:28:19 +0000 (20:28 +0000)
http://www.kdenlive.org:80/mantis/view.php?id=738

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

src/clipmanager.cpp
src/kdenlivedoc.cpp
src/mainwindow.cpp
src/projectlist.cpp
src/projectlist.h
src/projectlistview.cpp
src/projectlistview.h

index 5d23d5f3f5069025380799249fd10d35a9389891..30e3a91c1fa1fa804f195ef572eb74878bfc9197 100644 (file)
@@ -214,6 +214,7 @@ void ClipManager::slotAddClipList(const KUrl::List urls, const QString group, co
         if (KIO::NetAccess::exists(file, KIO::NetAccess::SourceSide, NULL)) {
             QDomDocument doc;
             QDomElement prod = doc.createElement("producer");
+            doc.appendChild(prod);
             if (!group.isEmpty()) {
                 prod.setAttribute("groupname", group);
                 prod.setAttribute("groupid", groupId);
@@ -227,7 +228,7 @@ void ClipManager::slotAddClipList(const KUrl::List urls, const QString group, co
                 prod.setAttribute("in", "0");
                 prod.setAttribute("out", m_doc->getFramePos(KdenliveSettings::image_duration()) - 1);
             }
-            new AddClipCommand(m_doc, prod, QString::number(id), true, addClips);
+            new AddClipCommand(m_doc, doc.documentElement(), QString::number(id), true, addClips);
         }
     }
     m_doc->commandStack()->push(addClips);
@@ -237,6 +238,7 @@ void ClipManager::slotAddClipFile(const KUrl url, const QString group, const QSt
     kDebug() << "/////  CLIP MANAGER, ADDING CLIP: " << url;
     QDomDocument doc;
     QDomElement prod = doc.createElement("producer");
+    doc.appendChild(prod);
     prod.setAttribute("resource", url.path());
     uint id = m_clipIdCounter++;
     prod.setAttribute("id", QString::number(id));
@@ -250,13 +252,14 @@ void ClipManager::slotAddClipFile(const KUrl url, const QString group, const QSt
         prod.setAttribute("in", "0");
         prod.setAttribute("out", m_doc->getFramePos(KdenliveSettings::image_duration()) - 1);
     }
-    AddClipCommand *command = new AddClipCommand(m_doc, prod, QString::number(id), true);
+    AddClipCommand *command = new AddClipCommand(m_doc, doc.documentElement(), QString::number(id), true);
     m_doc->commandStack()->push(command);
 }
 
 void ClipManager::slotAddColorClipFile(const QString name, const QString color, QString duration, const QString group, const QString &groupId) {
     QDomDocument doc;
     QDomElement prod = doc.createElement("producer");
+    doc.appendChild(prod);
     prod.setAttribute("mlt_service", "colour");
     prod.setAttribute("colour", color);
     prod.setAttribute("type", (int) COLOR);
@@ -269,13 +272,14 @@ void ClipManager::slotAddColorClipFile(const QString name, const QString color,
         prod.setAttribute("groupname", group);
         prod.setAttribute("groupid", groupId);
     }
-    AddClipCommand *command = new AddClipCommand(m_doc, prod, QString::number(id), true);
+    AddClipCommand *command = new AddClipCommand(m_doc, doc.documentElement(), QString::number(id), true);
     m_doc->commandStack()->push(command);
 }
 
 void ClipManager::slotAddSlideshowClipFile(const QString name, const QString path, int count, const QString duration, const bool loop, const bool fade, const QString &luma_duration, const QString &luma_file, const int softness, QString group, const QString &groupId) {
     QDomDocument doc;
     QDomElement prod = doc.createElement("producer");
+    doc.appendChild(prod);
     prod.setAttribute("resource", path);
     prod.setAttribute("type", (int) SLIDESHOW);
     uint id = m_clipIdCounter++;
@@ -293,7 +297,7 @@ void ClipManager::slotAddSlideshowClipFile(const QString name, const QString pat
         prod.setAttribute("groupname", group);
         prod.setAttribute("groupid", groupId);
     }
-    AddClipCommand *command = new AddClipCommand(m_doc, prod, QString::number(id), true);
+    AddClipCommand *command = new AddClipCommand(m_doc, doc.documentElement(), QString::number(id), true);
     m_doc->commandStack()->push(command);
 }
 
@@ -302,6 +306,7 @@ void ClipManager::slotAddSlideshowClipFile(const QString name, const QString pat
 void ClipManager::slotAddTextClipFile(const QString titleName, const QString imagePath, const QString xml, const QString group, const QString &groupId) {
     QDomDocument doc;
     QDomElement prod = doc.createElement("producer");
+    doc.appendChild(prod);
     prod.setAttribute("resource", imagePath);
     prod.setAttribute("titlename", titleName);
     prod.setAttribute("xmldata", xml);
@@ -315,7 +320,7 @@ void ClipManager::slotAddTextClipFile(const QString titleName, const QString ima
     prod.setAttribute("transparency", "1");
     prod.setAttribute("in", "0");
     prod.setAttribute("out", m_doc->getFramePos(KdenliveSettings::image_duration()) - 1);
-    AddClipCommand *command = new AddClipCommand(m_doc, prod, QString::number(id), true);
+    AddClipCommand *command = new AddClipCommand(m_doc, doc.documentElement(), QString::number(id), true);
     m_doc->commandStack()->push(command);
 }
 
index 7fd0099f15b3f5213df22cae3c046b8da3aeaf4d..163626aa6c225b3abc2fc4805fca71d8b6d10531 100644 (file)
@@ -1283,8 +1283,7 @@ void KdenliveDoc::addClip(QDomElement elem, QString clipId, bool createClipItem)
         if (elem.attribute("type").toInt() == SLIDESHOW) {
             extension = KUrl(path).fileName();
             path = KUrl(path).directory();
-        }
-        if (elem.attribute("type").toInt() == TEXT && !QFile::exists(path)) {
+        } else if (elem.attribute("type").toInt() == TEXT && QFile::exists(path) == false) {
             kDebug() << "// TITLE: " << elem.attribute("titlename") << " Preview file: " << elem.attribute("resource") << " DOES NOT EXIST";
             QString titlename = elem.attribute("titlename");
             QString titleresource;
@@ -1306,7 +1305,8 @@ void KdenliveDoc::addClip(QDomElement elem, QString clipId, bool createClipItem)
             pix.save(titleresource);
             elem.setAttribute("resource", titleresource);
             delete dia_ui;
-        } else if (!path.isEmpty() && !QFile::exists(path) && elem.attribute("type").toInt() != TEXT) {
+        }
+        if (path.isEmpty() == false && QFile::exists(path) == false && elem.attribute("type").toInt() != TEXT) {
             kDebug() << "// FOUND MISSING CLIP: " << path << ", TYPE: " << elem.attribute("type").toInt();
             const QString size = elem.attribute("file_size");
             const QString hash = elem.attribute("file_hash");
index 294ae432e16fae5950efd3526772a1302868e467..6e5640d25ba8fed0bd36dcca439f0a2c887cec7d 100644 (file)
@@ -456,7 +456,7 @@ void MainWindow::generateClip() {
 
     KUrl clipUrl = iGenerator->generatedClip(action->data().toString(), m_activeDocument->projectFolder(), QStringList(), QStringList(), 25, 720, 576);
     if (!clipUrl.isEmpty()) {
-        m_projectList->slotAddClip(clipUrl);
+        m_projectList->slotAddClip(QList <QUrl> () << clipUrl);
     }
 }
 
index 815a9b804cd359953d2cfe6039d957a3e6aab236..51c60ce18308f743201e7faa76e650f659f4de7f 100644 (file)
@@ -82,7 +82,7 @@ ProjectList::ProjectList(QWidget *parent)
     connect(listView, SIGNAL(pauseMonitor()), this, SLOT(slotPauseMonitor()));
     connect(listView, SIGNAL(requestMenu(const QPoint &, QTreeWidgetItem *)), this, SLOT(slotContextMenu(const QPoint &, QTreeWidgetItem *)));
     connect(listView, SIGNAL(addClip()), this, SLOT(slotAddClip()));
-    connect(listView, SIGNAL(addClip(KUrl, const QString &)), this, SLOT(slotAddClip(KUrl, const QString &)));
+    connect(listView, SIGNAL(addClip(const QList <QUrl>, const QString &)), this, SLOT(slotAddClip(const QList <QUrl>, const QString &)));
     connect(listView, SIGNAL(itemChanged(QTreeWidgetItem *, int)), this, SLOT(slotItemEdited(QTreeWidgetItem *, int)));
     connect(listView, SIGNAL(showProperties(DocClipBase *)), this, SIGNAL(showClipProperties(DocClipBase *)));
 
@@ -534,12 +534,15 @@ void ProjectList::updateAllClips() {
     QTimer::singleShot(500, this, SLOT(slotCheckForEmptyQueue()));
 }
 
-void ProjectList::slotAddClip(KUrl givenUrl, QString group) {
+void ProjectList::slotAddClip(const QList <QUrl> givenList, QString group) {
     if (!m_commandStack) kDebug() << "!!!!!!!!!!!!!!!! NO CMD STK";
     KUrl::List list;
-    if (givenUrl.isEmpty()) {
+    if (givenList.isEmpty()) {
         list = KFileDialog::getOpenUrls(KUrl("kfiledialog:///clipfolder"), "application/x-kdenlive video/x-flv application/vnd.rn-realmedia video/x-dv video/dv video/x-msvideo video/x-matroska video/mpeg video/x-ms-wmv audio/mpeg audio/x-mp3 audio/x-wav application/ogg video/mp4 video/quicktime image/gif image/jpeg image/png image/x-tga image/x-bmp image/svg+xml image/tiff image/x-xcf-gimp image/x-vnd.adobe.photoshop image/x-pcx image/x-exr video/mlt-playlist audio/x-flac audio/mp4 video/x-matroska audio/x-matroska", this);
-    } else list.append(givenUrl);
+    } else {
+        for (int i = 0; i < givenList.count(); i++)
+            list << givenList.at(i);
+    }
     if (list.isEmpty()) return;
 
     QString groupId;
index e0679d03e2a9b51e2eaf8a9515509025bd73c94c..95d8eff0645ca8ae3530666f4ca1156e6295b50c 100644 (file)
@@ -138,7 +138,7 @@ public slots:
     void slotRemoveInvalidClip(const QString &id);
     void slotSelectClip(const QString &ix);
     void slotRemoveClip();
-    void slotAddClip(KUrl givenUrl = KUrl(), QString group = QString());
+    void slotAddClip(const QList <QUrl> givenList = QList <QUrl> (), QString group = QString());
     void slotAddFolder(const QString foldername, const QString &clipId, bool remove, bool edit = false);
     void slotResetProjectList();
     void slotOpenClip();
index 0a85acdb6f7f717d0c1376ab2889f3b2ce6bf98a..08e774c11652b403e44b1f33e90d3965fba3aba6 100644 (file)
@@ -138,10 +138,7 @@ void ProjectListView::dropEvent(QDropEvent *event) {
             else if (item->parent() && ((ProjectItem *) item->parent())->isGroup())
                 groupName = item->parent()->text(1);
         }
-        const QList <QUrl> list = event->mimeData()->urls();
-        foreach(const QUrl &url, list) {
-            emit addClip(KUrl(url), groupName);
-        }
+        emit addClip(event->mimeData()->urls(), groupName);
 
     } else if (event->mimeData()->hasFormat("kdenlive/producerslist")) {
         ProjectItem *item = static_cast <ProjectItem *>(itemAt(event->pos()));
index cc9be0db0496df429600057af2ad16092a07366c..edd9b5bc622967d3a165716f052c4c81e23201e4 100644 (file)
@@ -60,7 +60,7 @@ private slots:
 signals:
     void requestMenu(const QPoint &, QTreeWidgetItem *);
     void addClip();
-    void addClip(KUrl, const QString &);
+    void addClip(const QList <QUrl>, const QString &);
     void showProperties(DocClipBase *);
     void focusMonitor();
     void pauseMonitor();