diff --git a/krArc/krarc.protocol b/krArc/krarc.protocol --- a/krArc/krarc.protocol +++ b/krArc/krarc.protocol @@ -1,7 +1,7 @@ [Protocol] exec=kio_krarc protocol=krarc -archiveMimetype=application/x-7z,application/x-7z-compressed,application/x-ace,application/x-ace-compressed,application/x-arj,application/x-arj-compressed,application/x-cpio,application/x-lha,application/x-lha-compressed,application/x-rar,application/x-rar-compressed,application/zip,application/x-zip,application/x-zip-compressed +archiveMimetype=application/x-7z,application/x-7z-compressed,application/x-ace,application/x-ace-compressed,application/x-arj,application/x-arj-compressed,application/x-cpio,application/x-lha,application/x-lha-compressed,application/x-rar,application/x-rar-compressed,application/vnd.rar,application/zip,application/x-zip,application/x-zip-compressed input=filesystem output=filesystem listing=Name,Type,Size,Date,Access,Owner,Group,Link diff --git a/krArc/krarcbasemanager.cpp b/krArc/krarcbasemanager.cpp --- a/krArc/krarcbasemanager.cpp +++ b/krArc/krarcbasemanager.cpp @@ -206,13 +206,18 @@ */ QString KrArcBaseManager::getShortTypeFromMime(const QString &mime) { + // Reminder: If a mime type is added/removed/modified in that + // member function, it's important to research if the type has to + // be added/removed/modified in the `krarc.protocol` file, or + // in `KrServices::generateKrarcArchiveMimetypes()` + // 7zip files are a not a normal case because their mimetype does not // follow the norm of other types: zip, tar, lha, ace, arj, etc. if (mime == "application/x-7z-compressed") return "7z"; // If it's a rar file but its mimetype isn't "application/x-rar" - if (mime == "application/x-rar-compressed") + if (mime == "application/x-rar-compressed" || mime == "application/vnd.rar") return "rar"; // The short type that will be returned diff --git a/krusader/krservices.cpp b/krusader/krservices.cpp --- a/krusader/krservices.cpp +++ b/krusader/krservices.cpp @@ -46,6 +46,11 @@ QSet KrServices::generateKrarcArchiveMimetypes() { + // Reminder: If a mime type is added/removed/modified in that + // member function, it's important to research if the type has to + // be added/removed/modified in the `krarc.protocol` file, or + // in `KrArcBaseManager::getShortTypeFromMime(const QString &mime)` + // Hard-code these proven mimetypes openable by krarc protocol. // They cannot be listed in krarc.protocol itself // because it would baffle other file managers (like Dolphin).