]> git.sesse.net Git - kdenlive/commitdiff
some cleanup and check that users don't add invalid clips
authorJean-Baptiste Mardelle <jb@kdenlive.org>
Tue, 29 Jul 2008 12:26:59 +0000 (12:26 +0000)
committerJean-Baptiste Mardelle <jb@kdenlive.org>
Tue, 29 Jul 2008 12:26:59 +0000 (12:26 +0000)
svn path=/branches/KDE4/; revision=2347

17 files changed:
src/clipitem.cpp
src/clipproperties.cpp
src/effectslistview.cpp
src/effectslistwidget.cpp
src/graphicsscenerectmove.cpp
src/initeffects.cpp
src/mainwindow.cpp
src/managecapturesdialog.cpp
src/profilesdialog.cpp
src/projectlist.cpp
src/projectlist.h
src/projectlistview.cpp
src/recmonitor.cpp
src/regiongrabber.cpp
src/renderer.cpp
src/renderer.h
src/slideshowclip.cpp

index 33cc1473da9ae199077f6b3ce6445dfbc2701ef5..0ab0e10e72d13d953deb8df10092bebfce5bed34 100644 (file)
@@ -152,8 +152,8 @@ void ClipItem::setKeyframes(const int ix, const QString keyframes) {
                 m_keyframeFactor = 100.0 / (max - min);
                 m_keyframeDefault = e.attribute("default").toDouble();
                 // parse keyframes
-                QStringList keyframes = e.attribute("keyframes").split(";", QString::SkipEmptyParts);
-                foreach(QString str, keyframes) {
+                const QStringList keyframes = e.attribute("keyframes").split(";", QString::SkipEmptyParts);
+                foreach(const QString str, keyframes) {
                     int pos = str.section(":", 0, 0).toInt();
                     double val = str.section(":", 1, 1).toDouble();
                     m_keyframes[pos] = val;
@@ -181,8 +181,8 @@ void ClipItem::setSelectedEffect(const int ix) {
                 m_keyframeFactor = 100.0 / (max - min);
                 m_keyframeDefault = e.attribute("default").toDouble();
                 // parse keyframes
-                QStringList keyframes = e.attribute("keyframes").split(";", QString::SkipEmptyParts);
-                foreach(QString str, keyframes) {
+                const QStringList keyframes = e.attribute("keyframes").split(";", QString::SkipEmptyParts);
+                foreach(const QString str, keyframes) {
                     int pos = str.section(":", 0, 0).toInt();
                     double val = str.section(":", 1, 1).toDouble();
                     m_keyframes[pos] = val;
@@ -786,9 +786,9 @@ void ClipItem::checkEffectsKeyframesPos(const int previous, const int current, b
             QDomElement e = params.item(i).toElement();
             if (e.attribute("type") == "keyframe") {
                 // parse keyframes and adjust values
-                QStringList keyframes = e.attribute("keyframes").split(";", QString::SkipEmptyParts);
+                const QStringList keyframes = e.attribute("keyframes").split(";", QString::SkipEmptyParts);
                 QMap <int, double> kfr;
-                foreach(QString str, keyframes) {
+                foreach(const QString str, keyframes) {
                     int pos = str.section(":", 0, 0).toInt();
                     double val = str.section(":", 1, 1).toDouble();
                     if (pos == previous) kfr[current] = val;
index 67bd0f2ddeeaa052e0ceca39153bb85dd8effe3a..784f0e2ea431f41d8d179cd4778123355646cfff 100644 (file)
@@ -100,16 +100,16 @@ ClipProperties::ClipProperties(DocClipBase *clip, Timecode tc, double fps, QWidg
         profilePath += "/lumas/PAL/";
 
         QDir dir(profilePath);
-        QStringList result = dir.entryList(QDir::Files);
+       QStringList filter;
+       filter << "*.pgm";
+        const QStringList result = dir.entryList(filter, QDir::Files);
         QStringList imagefiles;
         QStringList imagenamelist;
         int current;
-        foreach(QString file, result) {
-            if (file.endsWith(".pgm")) {
+        foreach(const QString file, result) {
                 m_view.luma_file->addItem(KIcon(profilePath + file), file, profilePath + file);
                 if (!lumaFile.isEmpty() && lumaFile == QString(profilePath + file))
                     current = m_view.luma_file->count() - 1;
-            }
         }
 
         if (!lumaFile.isEmpty()) {
index 36a26afdeeffd5680707407a42ef654bf130dc05..e0d2cf9cfa6290e10ab67f25c8be561211e97328 100644 (file)
@@ -104,24 +104,24 @@ void EffectsListView::slotRemoveEffect() {
     QString path = KStandardDirs::locateLocal("data", "kdenlive/effects/", true);
 
     QDir directory = QDir(path);
-    QStringList fileList = directory.entryList(QDir::Files);
+    QStringList filter;
+    filter << "*.xml";
+    const QStringList fileList = directory.entryList(filter, QDir::Files);
     QString itemName;
-    foreach(QString filename, fileList) {
+    foreach(const QString filename, fileList) {
         itemName = KUrl(path + filename).path();
-        if (itemName.endsWith(".xml")) {
-            QDomDocument doc;
-            QFile file(itemName);
-            doc.setContent(&file, false);
-            file.close();
-            QDomNodeList effects = doc.elementsByTagName("effect");
-            if (effects.count() != 1) {
-                kDebug() << "More than one effect in file " << itemName << ", NOT SUPPORTED YET";
-            } else {
-                QDomElement e = effects.item(0).toElement();
-                if (e.attribute("id") == effectId) {
-                    QFile::remove(itemName);
-                    break;
-                }
+        QDomDocument doc;
+        QFile file(itemName);
+        doc.setContent(&file, false);
+        file.close();
+        QDomNodeList effects = doc.elementsByTagName("effect");
+        if (effects.count() != 1) {
+            kDebug() << "More than one effect in file " << itemName << ", NOT SUPPORTED YET";
+        } else {
+            QDomElement e = effects.item(0).toElement();
+            if (e.attribute("id") == effectId) {
+                QFile::remove(itemName);
+                break;
             }
         }
     }
index be32d4c2b1515f675b4a3aed0b37ed59c0a1c50c..fa4ee15093666cf2bae884c099c5a5897638b826 100644 (file)
@@ -129,8 +129,7 @@ void EffectsListWidget::mouseMoveEvent(QMouseEvent *event) {
         if (clickItem) {
             QDrag *drag = new QDrag(this);
             QMimeData *mimeData = new QMimeData;
-            QList <QListWidgetItem *> list;
-            list = selectedItems();
+            const QList <QListWidgetItem *>list = selectedItems();
             QDomDocument doc;
             foreach(QListWidgetItem *item, list) {
                 doc.appendChild(doc.importNode(itemEffect(item), true));
index 26af61c73015d64cd1ff8cfc58d4a7c0f1321627..897902d9dd1e89cdfed97a0c89b01fe9f7e9fa3a 100644 (file)
@@ -111,7 +111,7 @@ void GraphicsSceneRectMove::mousePressEvent(QGraphicsSceneMouseEvent* e) {
     QPointF p = e->scenePos();
     p += QPoint(-2, -2);
     resizeMode = NoResize;
-    QList <QGraphicsItem *> list = items(QRectF(p , QSizeF(4, 4)).toRect());
+    const QList <QGraphicsItem *> list = items(QRectF(p , QSizeF(4, 4)).toRect());
     QGraphicsItem *item = NULL;
     bool hasSelected = false;
 
@@ -353,7 +353,7 @@ void GraphicsSceneRectMove::setZoom(double s) {
 }
 
 void GraphicsSceneRectMove::setCursor(QCursor c) {
-    QList<QGraphicsView*> l = views();
+    const QList<QGraphicsView*> l = views();
     foreach(QGraphicsView* v, l) {
         v->setCursor(c);
     }
index a7fde3134949ff1b170b47b8d46e7953d1de0b69..030a247263b4e63b3eda82c4b8710132db2bd14e 100644 (file)
@@ -118,11 +118,12 @@ Mlt::Repository *initEffects::parseEffectFiles() {
     QDir directory;
     for (more = direc.begin() ; more != direc.end() ; ++more) {
         directory = QDir(*more);
-        fileList = directory.entryList(QDir::Files);
+       QStringList filter;
+       filter << "*.xml";
+        fileList = directory.entryList(filter, QDir::Files);
         for (it = fileList.begin() ; it != fileList.end() ; ++it) {
             itemName = KUrl(*more + *it).path();
-            if (itemName.endsWith(".xml"))
-                parseEffectFile(&MainWindow::customEffects, &MainWindow::audioEffects, &MainWindow::videoEffects, itemName, filtersList, producersList);
+            parseEffectFile(&MainWindow::customEffects, &MainWindow::audioEffects, &MainWindow::videoEffects, itemName, filtersList, producersList);
             // kDebug()<<"//  FOUND EFFECT FILE: "<<itemName<<endl;
         }
     }
@@ -139,22 +140,22 @@ void initEffects::parseCustomEffectsFile() {
     MainWindow::customEffects.clear();
     QString path = KStandardDirs::locateLocal("data", "kdenlive/effects/", true);
     QDir directory = QDir(path);
-    QStringList fileList = directory.entryList(QDir::Files);
+    QStringList filter;
+    filter << "*.xml";
+    const QStringList fileList = directory.entryList(filter, QDir::Files);
     QString itemName;
-    foreach(QString filename, fileList) {
+    foreach(const QString filename, fileList) {
         itemName = KUrl(path + filename).path();
-        if (itemName.endsWith(".xml")) {
-            QDomDocument doc;
-            QFile file(itemName);
-            doc.setContent(&file, false);
-            file.close();
-            QDomNodeList effects = doc.elementsByTagName("effect");
-            if (effects.count() != 1) {
-                kDebug() << "More than one effect in file " << itemName << ", NOT SUPPORTED YET";
-            } else {
-                QDomElement e = effects.item(0).toElement();
-                MainWindow::customEffects.append(e);
-            }
+        QDomDocument doc;
+        QFile file(itemName);
+        doc.setContent(&file, false);
+        file.close();
+        QDomNodeList effects = doc.elementsByTagName("effect");
+        if (effects.count() != 1) {
+            kDebug() << "More than one effect in file " << itemName << ", NOT SUPPORTED YET";
+        } else {
+            QDomElement e = effects.item(0).toElement();
+            MainWindow::customEffects.append(e);
         }
     }
 }
index 22cfe6864fd41fbeb442a5a66dc8b05d0c4bd31f..4c642a7e8a610b20e72f1cf0ba2286c38e68fc81 100644 (file)
@@ -315,7 +315,7 @@ void MainWindow::readProperties(KConfig *config) {
 void MainWindow::slotReloadEffects() {
     initEffects::parseCustomEffectsFile();
     m_customEffectsMenu->clear();
-    QStringList effects = customEffects.effectNames();
+    const QStringList effects = customEffects.effectNames();
     QAction *action;
     foreach(const QString &name, effects) {
         action = new QAction(name, this);
@@ -403,6 +403,9 @@ void MainWindow::slotConnectMonitors() {
     connect(m_projectList, SIGNAL(getFileProperties(const QDomElement &, int)), m_clipMonitor->render, SLOT(getFileProperties(const QDomElement &, int)));
     connect(m_clipMonitor->render, SIGNAL(replyGetImage(int, int, const QPixmap &, int, int)), m_projectList, SLOT(slotReplyGetImage(int, int, const QPixmap &, int, int)));
     connect(m_clipMonitor->render, SIGNAL(replyGetFileProperties(int, Mlt::Producer*, const QMap < QString, QString > &, const QMap < QString, QString > &)), m_projectList, SLOT(slotReplyGetFileProperties(int, Mlt::Producer*, const QMap < QString, QString > &, const QMap < QString, QString > &)));
+
+    connect(m_clipMonitor->render, SIGNAL(removeInvalidClip(int)), m_projectList, SLOT(slotRemoveInvalidClip(int)));
+
     connect(m_clipMonitor, SIGNAL(refreshClipThumbnail(int)), m_projectList, SLOT(slotRefreshClipThumbnail(int)));
 }
 
index 6ce418155e29c22c8960c9da9485083e92f82804..8651abfc02f7b2cf7d0b73c9e6d9208fdd837ce3 100644 (file)
@@ -62,8 +62,7 @@ ManageCapturesDialog::ManageCapturesDialog(KUrl::List files, QWidget * parent):
     adjustSize();
 }
 
-ManageCapturesDialog::~ManageCapturesDialog() {
-}
+ManageCapturesDialog::~ManageCapturesDialog() {}
 
 void ManageCapturesDialog::slotCheckItemIcon() {
     int ct = 0;
index 669899133eec304d177c8044a0946e37e8dc07ee..a3311b20402d208b1b6890522bf94506e185a422 100644 (file)
@@ -79,7 +79,7 @@ MltVideoProfile ProfilesDialog::getVideoProfile(QString name) {
     }
 
     if (path.isEmpty()) return result;
-    KConfig confFile(path);
+    KConfig confFile(path, KConfig::SimpleConfig);
     result.path = name;
     result.description = confFile.entryMap().value("description");
     result.frame_rate_num = confFile.entryMap().value("frame_rate_num").toInt();
@@ -104,7 +104,7 @@ QString ProfilesDialog::getProfileDescription(QString name) {
     // List the Mlt profiles
     profilesFiles = QDir(KdenliveSettings::mltpath()).entryList(profilesFilter, QDir::Files);
     if (profilesFiles.contains(name)) {
-        KConfig confFile(KdenliveSettings::mltpath() + "/" + name);
+        KConfig confFile(KdenliveSettings::mltpath() + "/" + name, KConfig::SimpleConfig);
         return confFile.entryMap().value("description");
     }
 
@@ -113,7 +113,7 @@ QString ProfilesDialog::getProfileDescription(QString name) {
     for (int i = 0; i < customProfiles.size(); ++i) {
         profilesFiles = QDir(customProfiles.at(i)).entryList(profilesFilter, QDir::Files);
         if (profilesFiles.contains(name)) {
-            KConfig confFile(customProfiles.at(i) + "/" + name);
+            KConfig confFile(customProfiles.at(i) + "/" + name, KConfig::SimpleConfig);
             return confFile.entryMap().value("description");
         }
     }
@@ -131,7 +131,7 @@ QStringList ProfilesDialog::getProfileNames() {
     // List the Mlt profiles
     profilesFiles = QDir(KdenliveSettings::mltpath()).entryList(profilesFilter, QDir::Files);
     for (int i = 0; i < profilesFiles.size(); ++i) {
-        KConfig confFile(KdenliveSettings::mltpath() + "/" + profilesFiles.at(i));
+        KConfig confFile(KdenliveSettings::mltpath() + "/" + profilesFiles.at(i), KConfig::SimpleConfig);
         QString desc = confFile.entryMap().value("description");
         if (!desc.isEmpty()) profilesNames.append(desc);
     }
@@ -141,7 +141,7 @@ QStringList ProfilesDialog::getProfileNames() {
     for (int i = 0; i < customProfiles.size(); ++i) {
         profilesFiles = QDir(customProfiles.at(i)).entryList(profilesFilter, QDir::Files);
         for (int i = 0; i < profilesFiles.size(); ++i) {
-            KConfig confFile(customProfiles.at(i) + "/" + profilesFiles.at(i));
+            KConfig confFile(customProfiles.at(i) + "/" + profilesFiles.at(i), KConfig::SimpleConfig);
             QString desc = confFile.entryMap().value("description");
             if (!desc.isEmpty()) profilesNames.append(desc);
         }
@@ -161,7 +161,7 @@ QMap< QString, QString > ProfilesDialog::getSettingsFromFile(const QString path)
     profilesFiles = QDir(KdenliveSettings::mltpath()).entryList(profilesFilter, QDir::Files);
     for (int i = 0; i < profilesFiles.size(); ++i) {
         if (profilesFiles.at(i) == path) {
-            KConfig confFile(KdenliveSettings::mltpath() + "/" + profilesFiles.at(i));
+            KConfig confFile(KdenliveSettings::mltpath() + "/" + profilesFiles.at(i), KConfig::SimpleConfig);
             return confFile.entryMap();
         }
     }
@@ -172,7 +172,7 @@ QMap< QString, QString > ProfilesDialog::getSettingsFromFile(const QString path)
         QStringList profiles = QDir(customProfiles.at(i)).entryList(profilesFilter, QDir::Files);
         for (int i = 0; i < profiles.size(); ++i) {
             if (profiles.at(i) == path) {
-                KConfig confFile(customProfiles.at(i) + "/" + profiles.at(i));
+                KConfig confFile(customProfiles.at(i) + "/" + profiles.at(i), KConfig::SimpleConfig);
                 return confFile.entryMap();
             }
         }
@@ -190,7 +190,7 @@ QMap< QString, QString > ProfilesDialog::getSettingsForProfile(const QString pro
     // List the Mlt profiles
     profilesFiles = QDir(KdenliveSettings::mltpath()).entryList(profilesFilter, QDir::Files);
     for (int i = 0; i < profilesFiles.size(); ++i) {
-        KConfig confFile(KdenliveSettings::mltpath() + "/" + profilesFiles.at(i));
+        KConfig confFile(KdenliveSettings::mltpath() + "/" + profilesFiles.at(i), KConfig::SimpleConfig);
         QMap< QString, QString > values = confFile.entryMap();
         if (values.value("description") == profileName) {
             values.insert("path", profilesFiles.at(i));
@@ -203,7 +203,7 @@ QMap< QString, QString > ProfilesDialog::getSettingsForProfile(const QString pro
     for (int i = 0; i < customProfiles.size(); ++i) {
         QStringList profiles = QDir(customProfiles.at(i)).entryList(profilesFilter, QDir::Files);
         for (int i = 0; i < profiles.size(); ++i) {
-            KConfig confFile(customProfiles.at(i) + "/" + profiles.at(i));
+            KConfig confFile(customProfiles.at(i) + "/" + profiles.at(i), KConfig::SimpleConfig);
             QMap< QString, QString > values = confFile.entryMap();
             if (values.value("description") == profileName) {
                 values.insert("path", customProfiles.at(i) + "/" + profiles.at(i));
@@ -224,7 +224,7 @@ QString ProfilesDialog::getPathFromDescription(const QString profileDesc) {
     // List the Mlt profiles
     profilesFiles = QDir(KdenliveSettings::mltpath()).entryList(profilesFilter, QDir::Files);
     for (int i = 0; i < profilesFiles.size(); ++i) {
-        KConfig confFile(KdenliveSettings::mltpath() + "/" + profilesFiles.at(i));
+        KConfig confFile(KdenliveSettings::mltpath() + "/" + profilesFiles.at(i), KConfig::SimpleConfig);
         QMap< QString, QString > values = confFile.entryMap();
         if (values.value("description") == profileDesc) return profilesFiles.at(i);
     }
@@ -234,7 +234,7 @@ QString ProfilesDialog::getPathFromDescription(const QString profileDesc) {
     for (int i = 0; i < customProfiles.size(); ++i) {
         QStringList profiles = QDir(customProfiles.at(i)).entryList(profilesFilter, QDir::Files);
         for (int i = 0; i < profiles.size(); ++i) {
-            KConfig confFile(customProfiles.at(i) + "/" + profiles.at(i));
+            KConfig confFile(customProfiles.at(i) + "/" + profiles.at(i), KConfig::SimpleConfig);
             QMap< QString, QString > values = confFile.entryMap();
             if (values.value("description") == profileDesc) return customProfiles.at(i) + "/" + profiles.at(i);
         }
@@ -264,7 +264,7 @@ void ProfilesDialog::slotUpdateDisplay() {
     m_view.button_delete->setEnabled(m_isCustomProfile);
     m_view.properties->setEnabled(m_isCustomProfile);
 
-    KConfig confFile(currentProfilePath);
+    KConfig confFile(currentProfilePath, KConfig::SimpleConfig);
     QMap< QString, QString > values = confFile.entryMap();
     m_view.description->setText(values.value("description"));
     m_view.size_w->setValue(values.value("width").toInt());
index e5620ba79b5a1c3a4fbe3e072b30fd4bed39dbd3..7356ed5ed32beb11fe13872b3c5d49ae8522b982 100644 (file)
@@ -330,10 +330,23 @@ void ProjectList::slotAddClip(QUrl givenUrl, QString group) {
         }
     }
     foreach(const KUrl file, list) {
-        m_doc->slotAddClipFile(file, group, groupId);
+       if (KIO::NetAccess::exists(file, KIO::NetAccess::SourceSide, NULL))
+           m_doc->slotAddClipFile(file, group, groupId);
     }
 }
 
+void ProjectList::slotRemoveInvalidClip(int id) {
+    ProjectItem *item = getItemById(id);
+    if (item) {
+        QString path = item->referencedClip()->fileURL().path();
+       if (!path.isEmpty()) KMessageBox::sorry(this, i18n("<qt>Clip <b>%1</b><br>is invalid, will be removed from project.", path));
+       
+    }
+    QList <int> ids;
+    ids << id;
+    m_doc->deleteProjectClip(ids);
+}
+
 void ProjectList::slotAddColorClip() {
     if (!m_commandStack) kDebug() << "!!!!!!!!!!!!!!!!  NO CMD STK";
     QDialog *dia = new QDialog(this);
index 31a16341de17b510b463ebbd2008b38cd67b8575..d06befa4f8fd3d7ec576cbafbb92987d9bdfebef 100644 (file)
@@ -118,7 +118,7 @@ public slots:
     void slotUpdateClip(int id);
     void slotRefreshClipThumbnail(int clipId);
     void slotRefreshClipThumbnail(ProjectItem *item);
-
+    void slotRemoveInvalidClip(int id);
 
 private:
     ProjectListView *listView;
index cb35caf4153d672f141dd5659453a8b29a00cf49..779da5f4f3cf0dede2422d0057b390e9f57b48d1 100644 (file)
@@ -135,8 +135,7 @@ void ProjectListView::dropEvent(QDropEvent *event) {
             else if (item->parent() && ((ProjectItem *) item->parent())->isGroup())
                 groupName = item->parent()->text(1);
         }
-        QList <QUrl> list;
-        list = event->mimeData()->urls();
+        const QList <QUrl> list = event->mimeData()->urls();
         foreach(const QUrl &url, list) {
             emit addClip(url, groupName);
         }
@@ -148,8 +147,7 @@ void ProjectListView::dropEvent(QDropEvent *event) {
             if (item->isGroup()) {
                 //emit addClip(event->mimeData->text());
                 kDebug() << "////////////////  DROPPED RIGHT 1 ";
-                QList <QTreeWidgetItem *> list;
-                list = selectedItems();
+                const QList <QTreeWidgetItem *> list = selectedItems();
                 ProjectItem *clone;
                 int parentId = item->clipId();
                 foreach(QTreeWidgetItem *it, list) {
@@ -171,8 +169,7 @@ void ProjectListView::dropEvent(QDropEvent *event) {
         if (!item) {
             kDebug() << "////////////////  DROPPED ON EMPTY ZONE";
             // item dropped in empty zone, move it to top level
-            QList <QTreeWidgetItem *> list;
-            list = selectedItems();
+            const QList <QTreeWidgetItem *> list = selectedItems();
             ProjectItem *clone;
             foreach(QTreeWidgetItem *it, list) {
                 QTreeWidgetItem *parent = it->parent();
@@ -214,8 +211,7 @@ void ProjectListView::mouseMoveEvent(QMouseEvent *event) {
             QDrag *drag = new QDrag(this);
             QMimeData *mimeData = new QMimeData;
             QDomDocument doc;
-            QList <QTreeWidgetItem *> list;
-            list = selectedItems();
+            const QList <QTreeWidgetItem *> list = selectedItems();
             QStringList ids;
             foreach(const QTreeWidgetItem *item, list) {
                 // TODO allow dragging of folders
index e823244f4d928a37ae55427302da1a86964e57f6..a9bcc382218e132be3ef48c2650cf5dfc2f0efa6 100644 (file)
@@ -507,7 +507,7 @@ void RecMonitor::manageCapturedFiles() {
     QDir dir(KdenliveSettings::capturefolder());
     QStringList filters;
     filters << "capture*" + extension;
-    QStringList result = dir.entryList(filters, QDir::Files, QDir::Time);
+    const QStringList result = dir.entryList(filters, QDir::Files, QDir::Time);
     KUrl::List capturedFiles;
     foreach(QString name, result) {
         KUrl url = KUrl(dir.filePath(name));
index d85e923254cd45fe1b59303e0949703511de7766..92b00a7d07e12f169cca5366a75e68f755f5fa35 100644 (file)
@@ -308,7 +308,7 @@ void RegionGrabber::updateHandles() {
 QRegion RegionGrabber::handleMask() const {
     // note: not normalized QRects are bad here, since they will not be drawn
     QRegion mask;
-    foreach(QRect* rect, handles) mask += QRegion(*rect);
+    foreach(const QRect* rect, handles) mask += QRegion(*rect);
     return mask;
 }
 
index 07b5349a40d7fcdb66f9626c09db95f56d3e2562..43a7537ff46c6c34fbb6e9ac5a7408c319e1a9e7 100644 (file)
@@ -247,14 +247,11 @@ QPixmap Render::getImageThumbnail(KUrl url, int width, int height) {
         QStringList::Iterator it;
 
         QDir dir(url.directory());
-        more = dir.entryList(QDir::Files);
-
-        for (it = more.begin() ; it != more.end() ; ++it) {
-            if ((*it).endsWith("." + fileType, Qt::CaseInsensitive)) {
-                im.load(url.directory() + "/" + *it);
-                break;
-            }
-        }
+       QStringList filter;
+       filter << "*." + fileType;
+       filter << "*." + fileType.toUpper();
+        more = dir.entryList(filter, QDir::Files);
+       im.load(url.directory() + "/" + more.at(0));
     } else im.load(url.path());
     //pixmap = im.scaled(width, height);
     return pixmap;
@@ -477,6 +474,7 @@ void Render::getFileProperties(const QDomElement &xml, int clipId) {
 
     if (producer->is_blank()) {
         kDebug() << " / / / / / / / /ERRROR / / / / // CANNOT LOAD PRODUCER: ";
+       emit removeInvalidClip(clipId);
         return;
     }
     producer->set("id", clipId);
index 6c4443a1e295b07365eef3d30eda9e4899a23466..187b050a0c86c2835ee7b47695ec4c9da646a599 100644 (file)
@@ -238,7 +238,7 @@ signals:   // Signals
     void durationChanged(int);
     void rendererPosition(int);
     void rendererStopped(int);
-
+    void removeInvalidClip(int);
 
 public slots:  // Public slots
     /** Start Consumer */
index 56b75b00074bbc4468f35f97800ca9c97d0bc7c6..2269319013cbdd8e7e376b471291614ca2305855 100644 (file)
@@ -58,13 +58,13 @@ SlideshowClip::SlideshowClip(QWidget * parent): QDialog(parent), m_count(0) {
     profilePath += "/lumas/PAL/";
 
     QDir dir(profilePath);
-    QStringList result = dir.entryList(QDir::Files);
+    QStringList filter;
+    filter << "*.pgm";
+    const QStringList result = dir.entryList(filter, QDir::Files);
     QStringList imagefiles;
     QStringList imagenamelist;
-    foreach(QString file, result) {
-        if (file.endsWith(".pgm")) {
-            m_view.luma_file->addItem(KIcon(profilePath + file), file, profilePath + file);
-        }
+    foreach(const QString file, result) {
+        m_view.luma_file->addItem(KIcon(profilePath + file), file, profilePath + file);
     }
 
     adjustSize();
@@ -108,7 +108,7 @@ void SlideshowClip::parseFolder() {
     }
 
     dir.setNameFilters(filters);
-    QStringList result = dir.entryList(QDir::Files);
+    const QStringList result = dir.entryList(QDir::Files);
     m_count = result.count();
     if (m_count == 0) m_view.buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false);
     else m_view.buttonBox->button(QDialogButtonBox::Ok)->setEnabled(true);