X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;ds=sidebyside;f=src%2Fwizard.cpp;h=4b79d072050fafb0e03279f1cfaa5e1bbe5b8736;hb=ba471399b55c3b761ccc7aa5008c25bd43cfe90b;hp=a0a0c71f082427e05f9cff0cc1ec27eff19ebc78;hpb=f41770656c58ffc541441d04a3845cd1005fcdcf;p=kdenlive diff --git a/src/wizard.cpp b/src/wizard.cpp index a0a0c71f..4b79d072 100644 --- a/src/wizard.cpp +++ b/src/wizard.cpp @@ -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";