diff --git a/src/widgets/previewjob.cpp b/src/widgets/previewjob.cpp --- a/src/widgets/previewjob.cpp +++ b/src/widgets/previewjob.cpp @@ -55,6 +55,9 @@ #include #include #include +#include + +#include #include "job_p.h" @@ -270,6 +273,7 @@ const KService::List plugins = KServiceTypeTrader::self()->query(QStringLiteral("ThumbCreator")); QMap mimeMap; QHash > protocolMap; + for (KService::List::ConstIterator it = plugins.constBegin(); it != plugins.constEnd(); ++it) { QStringList protocols = (*it)->property(QStringLiteral("X-KDE-Protocols")).toStringList(); const QString p = (*it)->property(QStringLiteral("X-KDE-Protocol")).toString(); @@ -300,6 +304,16 @@ } } + auto mountsList = KMountPoint::currentMountPoints(); + KMountPoint::List encryptedMountsList; + + std::copy_if(mountsList.begin(), mountsList.end(), + std::back_inserter(encryptedMountsList), + [] (KMountPoint::Ptr mount) { + return mount->mountType() == QLatin1String("fuse.cryfs") || + mount->mountType() == QLatin1String("fise.encfs"); + }); + // Look for images and store the items in our todo list :) bool bNeedCache = false; KFileItemList::const_iterator kit = initialItems.constBegin(); @@ -307,6 +321,11 @@ for (; kit != kend; ++kit) { PreviewItem item; item.item = *kit; + + if (encryptedMountsList.findByPath(item.item.url().toLocalFile())) { + continue; + } + const QString mimeType = item.item.mimetype(); KService::Ptr plugin(nullptr);