]> git.sesse.net Git - kdenlive/commitdiff
Only install extra mimetypes if required, otherwise can break mime detection
authorJean-Baptiste Mardelle <jb@kdenlive.org>
Sun, 14 Oct 2012 20:54:57 +0000 (22:54 +0200)
committerJean-Baptiste Mardelle <jb@kdenlive.org>
Sun, 14 Oct 2012 20:54:57 +0000 (22:54 +0200)
src/wizard.cpp

index 062f13dc143e8ca2f5eaecb5f57de54a1dbea7bd..4539a3fcac4498932b27838e4cad6712d791bc69 100644 (file)
@@ -491,12 +491,19 @@ void Wizard::installExtraMimes(QString baseName, QStringList globs)
     QString mimefile = baseName;
     mimefile.replace('/', '-');
     KMimeType::Ptr mime = KMimeType::mimeType(baseName);
     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();
     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;
             if (!extensions.contains(glob)) extensions << glob;
         }
         kDebug() << "EXTS: " << extensions;
@@ -617,6 +624,7 @@ void Wizard::adjustSettings()
 {
     if (m_extra.installmimes->isChecked()) {
         QStringList globs;
 {
     if (m_extra.installmimes->isChecked()) {
         QStringList globs;
+       
         globs << "*.mts" << "*.m2t" << "*.mod" << "*.ts" << "*.m2ts" << "*.m2v";
         installExtraMimes("video/mpeg", globs);
         globs.clear();
         globs << "*.mts" << "*.m2t" << "*.mod" << "*.ts" << "*.m2ts" << "*.m2v";
         installExtraMimes("video/mpeg", globs);
         globs.clear();