[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [kdenlive/v0.8.2.1] src: Fix search path for missing lumas
From:       Jean-Baptiste Mardelle <jb () kdenlive ! org>
Date:       2011-11-08 11:00:25
Message-ID: 20111108110025.258C6A60A6 () git ! kde ! org
[Download RAW message or body]

Git commit 07b590ab399b3a96093dd95ddc5a4246bb2c8fe2 by Jean-Baptiste Mardelle.
Committed on 08/11/2011 at 11:58.
Pushed by mardelle into branch 'v0.8.2.1'.

Fix search path for missing lumas

M  +11   -5    src/documentchecker.cpp
M  +1    -1    src/documentchecker.h

http://commits.kde.org/kdenlive/07b590ab399b3a96093dd95ddc5a4246bb2c8fe2

diff --git a/src/documentchecker.cpp b/src/documentchecker.cpp
index 11e4c48..a89ddc1 100644
--- a/src/documentchecker.cpp
+++ b/src/documentchecker.cpp
@@ -33,6 +33,7 @@
 #include <KApplication>
 #include <KUrlRequesterDialog>
 #include <KMessageBox>
+#include <KStandardDirs>
 
 #include <QTreeWidgetItem>
 #include <QFile>
@@ -423,7 +424,7 @@ void DocumentChecker::slotSearchClips()
                 child->setData(0, statusRole, CLIPOK);
             }
         } else if (child->data(0, statusRole).toInt() == LUMAMISSING) {
-            QString fileName = searchLuma(child->data(0, idRole).toString());
+            QString fileName = searchLuma(searchDir, child->data(0, \
idRole).toString());  if (!fileName.isEmpty()) {
                 fixed = true;
                 child->setText(1, fileName);
@@ -456,24 +457,29 @@ void DocumentChecker::slotSearchClips()
 }
 
 
-QString DocumentChecker::searchLuma(const QString &file) const
+QString DocumentChecker::searchLuma(const QDir &dir, const QString &file) const
 {
     KUrl searchPath(KdenliveSettings::mltpath());
+    QString fname = KUrl(file).fileName();
     if (file.contains("PAL"))
         searchPath.cd("../lumas/PAL");
     else
         searchPath.cd("../lumas/NTSC");
-    QString result = searchPath.path(KUrl::AddTrailingSlash) + \
KUrl(file).fileName(); +    QString result = searchPath.path(KUrl::AddTrailingSlash) \
+ fname;  if (QFile::exists(result))
         return result;
     // try to find luma in application path
     searchPath.clear();
     searchPath = KUrl(QCoreApplication::applicationDirPath());
     searchPath.cd("../share/apps/kdenlive/lumas");
-    result = searchPath.path(KUrl::AddTrailingSlash) + KUrl(file).fileName();
+    result = searchPath.path(KUrl::AddTrailingSlash) + fname;
     if (QFile::exists(result))
         return result;
-    return QString();
+    // Try in Kdenlive's standard KDE path
+    result = KStandardDirs::locate("appdata", "lumas/" + fname);
+    if (!result.isEmpty()) return result;
+    // Try in user's chosen folder 
+    return searchPathRecursively(dir, fname);
 }
 
 QString DocumentChecker::searchPathRecursively(const QDir &dir, const QString \
                &fileName) const
diff --git a/src/documentchecker.h b/src/documentchecker.h
index 66e35de..90be936 100644
--- a/src/documentchecker.h
+++ b/src/documentchecker.h
@@ -46,7 +46,7 @@ private slots:
     void slotDeleteSelected();
     QString getProperty(QDomElement effect, const QString &name);
     void setProperty(QDomElement effect, const QString &name, const QString value);
-    QString searchLuma(const QString &file) const;
+    QString searchLuma(const QDir &dir, const QString &file) const;
     /** @brief Check if images and fonts in this clip exists, returns a list of \
                images that do exist so we don't check twice. */
     void checkMissingImagesAndFonts(QStringList images, QStringList fonts, const \
QString &id, const QString &baseClip);  void slotCheckButtons();


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic