]> git.sesse.net Git - kdenlive/blobdiff - src/wizard.cpp
Merge branch 'master' into bugfix/jogshuttle
[kdenlive] / src / wizard.cpp
index a0a0c71f082427e05f9cff0cc1ec27eff19ebc78..4b79d072050fafb0e03279f1cfaa5e1bbe5b8736 100644 (file)
@@ -415,9 +415,20 @@ void Wizard::slotCheckPrograms()
     item->setData(1, Qt::UserRole, i18n("Required for webcam capture"));
     item->setSizeHint(0, itemSize);
     QString exepath = KStandardDirs::findExe("ffmpeg");
-    if (exepath.isEmpty()) item->setIcon(0, m_badIcon);
-    else if (KStandardDirs::findExe("ffplay").isEmpty()) item->setIcon(0, m_badIcon);
-    else item->setIcon(0, m_okIcon);
+    QString playpath = KStandardDirs::findExe("ffplay");
+    item->setIcon(0, m_okIcon);
+    if (exepath.isEmpty()) {
+       // Check for libav version
+       exepath = KStandardDirs::findExe("avconv");
+       if (exepath.isEmpty()) item->setIcon(0, m_badIcon);
+    }
+    if (playpath.isEmpty()) {
+       // Check for libav version
+       playpath = KStandardDirs::findExe("avplay");
+       if (playpath.isEmpty()) item->setIcon(0, m_badIcon);
+    }
+    if (!exepath.isEmpty()) KdenliveSettings::setFfmpegpath(exepath);
+    if (!playpath.isEmpty()) KdenliveSettings::setFfplaypath(playpath);
 
 #ifndef Q_WS_MAC
     item = new QTreeWidgetItem(m_check.programList, QStringList() << QString() << i18n("recordmydesktop"));
@@ -453,7 +464,13 @@ void Wizard::slotCheckPrograms()
     item = new QTreeWidgetItem(m_check.programList, QStringList() << QString() << i18n("xine"));
     item->setData(1, Qt::UserRole, i18n("Required to preview your DVD"));
     item->setSizeHint(0, itemSize);
-    if (KStandardDirs::findExe("xine").isEmpty()) item->setIcon(0, m_badIcon);
+    if (KStandardDirs::findExe("xine").isEmpty()) {
+       if (!KStandardDirs::findExe("vlc").isEmpty()) {
+           item->setText(1, i18n("vlc"));
+           item->setIcon(0, m_okIcon);
+       }
+       else item->setIcon(0, m_badIcon);
+    }
     else item->setIcon(0, m_okIcon);
 
     // set up some default applications
@@ -480,12 +497,19 @@ void Wizard::installExtraMimes(QString baseName, QStringList globs)
     QString mimefile = baseName;
     mimefile.replace('/', '-');
     KMimeType::Ptr mime = KMimeType::mimeType(baseName);
+    QStringList missingGlobs;
+    foreach(const QString & glob, globs) {
+       KMimeType::Ptr type = KMimeType::findByPath(glob, 0, true);
+       QString mimeName = type->name();
+        if (!mimeName.contains("audio") && !mimeName.contains("video")) missingGlobs << glob;
+    }
+    if (missingGlobs.isEmpty()) return;
     if (!mime) {
         kDebug() << "KMimeTypeTrader: mimeType " << baseName << " not found";
     } else {
         QStringList extensions = mime->patterns();
         QString comment = mime->comment();
-        foreach(const QString & glob, globs) {
+        foreach(const QString & glob, missingGlobs) {
             if (!extensions.contains(glob)) extensions << glob;
         }
         kDebug() << "EXTS: " << extensions;
@@ -606,7 +630,8 @@ void Wizard::adjustSettings()
 {
     if (m_extra.installmimes->isChecked()) {
         QStringList globs;
-        globs << "*.mts" << "*.m2t" << "*.mod" << "*.ts" << "*.m2ts";
+       
+        globs << "*.mts" << "*.m2t" << "*.mod" << "*.ts" << "*.m2ts" << "*.m2v";
         installExtraMimes("video/mpeg", globs);
         globs.clear();
         globs << "*.dv";