X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/82202a24e20a36d8bfd814dce6702012d74a1620..40cc5f665d:/src/kitemviews/kfileitemmodelrolesupdater.cpp diff --git a/src/kitemviews/kfileitemmodelrolesupdater.cpp b/src/kitemviews/kfileitemmodelrolesupdater.cpp index 49657a9b1..ae185ff21 100644 --- a/src/kitemviews/kfileitemmodelrolesupdater.cpp +++ b/src/kitemviews/kfileitemmodelrolesupdater.cpp @@ -13,7 +13,6 @@ #include #include -#include #include #include #include @@ -21,17 +20,17 @@ #include #include -#ifdef HAVE_BALOO +#if HAVE_BALOO #include "private/kbaloorolesprovider.h" #include #include #endif #include -#include +#include +#include #include #include -#include #include // #define KFILEITEMMODELROLESUPDATER_DEBUG @@ -82,7 +81,7 @@ KFileItemModelRolesUpdater::KFileItemModelRolesUpdater(KFileItemModel* model, QO m_recentlyChangedItems(), m_changedItems(), m_directoryContentsCounter(nullptr) - #ifdef HAVE_BALOO + #if HAVE_BALOO , m_balooFileMonitor(nullptr) #endif { @@ -113,7 +112,7 @@ KFileItemModelRolesUpdater::KFileItemModelRolesUpdater(KFileItemModel* model, QO m_resolvableRoles.insert("size"); m_resolvableRoles.insert("type"); m_resolvableRoles.insert("isExpandable"); -#ifdef HAVE_BALOO +#if HAVE_BALOO m_resolvableRoles += KBalooRolesProvider::instance().roles(); #endif @@ -121,7 +120,7 @@ KFileItemModelRolesUpdater::KFileItemModelRolesUpdater(KFileItemModel* model, QO connect(m_directoryContentsCounter, &KDirectoryContentsCounter::result, this, &KFileItemModelRolesUpdater::slotDirectoryContentsCountReceived); - const auto plugins = KPluginMetaData::findPlugins(QStringLiteral("kf5/overlayicon")); + const auto plugins = KPluginMetaData::findPlugins(QStringLiteral("kf" QT_STRINGIFY(QT_VERSION_MAJOR)) + QStringLiteral("/overlayicon")); for (const KPluginMetaData &data : plugins) { auto instance = QPluginLoader(data.fileName()).instance(); auto plugin = qobject_cast(instance); @@ -266,7 +265,7 @@ void KFileItemModelRolesUpdater::setRoles(const QSet& roles) if (m_roles != roles) { m_roles = roles; -#ifdef HAVE_BALOO +#if HAVE_BALOO // Check whether there is at least one role that must be resolved // with the help of Baloo. If this is the case, a (quite expensive) // resolving will be done in KFileItemModelRolesUpdater::rolesData() and @@ -396,7 +395,7 @@ void KFileItemModelRolesUpdater::slotItemsRemoved(const KItemRangeList& itemRang const bool allItemsRemoved = (m_model->count() == 0); -#ifdef HAVE_BALOO +#if HAVE_BALOO if (m_balooFileMonitor) { // Don't let the FileWatcher watch for removed items if (allItemsRemoved) { @@ -825,7 +824,7 @@ void KFileItemModelRolesUpdater::resolveRecentlyChangedItems() void KFileItemModelRolesUpdater::applyChangedBalooRoles(const QString& file) { -#ifdef HAVE_BALOO +#if HAVE_BALOO const KFileItem item = m_model->fileItem(QUrl::fromLocalFile(file)); if (item.isNull()) { @@ -841,7 +840,7 @@ void KFileItemModelRolesUpdater::applyChangedBalooRoles(const QString& file) void KFileItemModelRolesUpdater::applyChangedBalooRolesForItem(const KFileItem &item) { -#ifdef HAVE_BALOO +#if HAVE_BALOO Baloo::File file(item.localPath()); file.load(); @@ -1026,7 +1025,7 @@ void KFileItemModelRolesUpdater::startPreviewJob() KIO::PreviewJob* job = new KIO::PreviewJob(itemSubSet, cacheSize, &m_enabledPlugins); - job->setIgnoreMaximumSize(itemSubSet.first().isLocalFile() && m_localFileSizePreviewLimit <= 0); + job->setIgnoreMaximumSize(itemSubSet.first().isLocalFile() && !itemSubSet.first().isSlow() && m_localFileSizePreviewLimit <= 0); if (job->uiDelegate()) { KJobWidgets::setWindow(job, qApp->activeWindow()); } @@ -1135,7 +1134,7 @@ void KFileItemModelRolesUpdater::loadNextHoverSequencePreview() KIO::PreviewJob* job = new KIO::PreviewJob({m_hoverSequenceItem}, cacheSize, &m_enabledPlugins); job->setSequenceIndex(loadSeqIdx); - job->setIgnoreMaximumSize(m_hoverSequenceItem.isLocalFile() && m_localFileSizePreviewLimit <= 0); + job->setIgnoreMaximumSize(m_hoverSequenceItem.isLocalFile() && !m_hoverSequenceItem.isSlow() && m_localFileSizePreviewLimit <= 0); if (job->uiDelegate()) { KJobWidgets::setWindow(job, qApp->activeWindow()); } @@ -1337,6 +1336,10 @@ QHash KFileItemModelRolesUpdater::rolesData(const KFileIte } } + if (m_roles.contains("extension")) { + data.insert("extension", QFileInfo(item.name()).suffix()); + } + if (m_roles.contains("type")) { data.insert("type", item.mimeComment()); } @@ -1345,9 +1348,11 @@ QHash KFileItemModelRolesUpdater::rolesData(const KFileIte for (KOverlayIconPlugin *it : qAsConst(m_overlayIconsPlugin)) { overlays.append(it->getOverlays(item.url())); } - data.insert("iconOverlays", overlays); + if (!overlays.isEmpty()) { + data.insert("iconOverlays", overlays); + } -#ifdef HAVE_BALOO +#if HAVE_BALOO if (m_balooFileMonitor) { m_balooFileMonitor->addFile(item.localPath()); applyChangedBalooRolesForItem(item);