akonadi-server/consider-collections-that-not-match-mimetype.patch

36 lines
1.7 KiB
Diff

From d3c6ba904798768b0c83c2e182c27b1c624f78ca Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Daniel=20Vr=C3=A1til?= <dvratil@kde.org>
Date: Tue, 15 Aug 2017 12:16:48 +0200
Subject: ETM: consider collections that don't match mimetype filter populated
After commit 0741892fe the ETM only runs ItemFetchJob for collections
that match the current mimetype filter. This caused collections that
don't match the filter (like top-level collections) to never be marked
as populated, breaking applications like korgac that check the
IsPopulatedRole of all collections in the tree.
---
src/core/models/entitytreemodel_p.cpp | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/src/core/models/entitytreemodel_p.cpp b/src/core/models/entitytreemodel_p.cpp
index 94c080b..879ba57 100644
--- a/src/core/models/entitytreemodel_p.cpp
+++ b/src/core/models/entitytreemodel_p.cpp
@@ -473,6 +473,13 @@ void EntityTreeModelPrivate::collectionsFetched(const Akonadi::Collection::List
const auto col = m_collections.value(collectionId);
if (m_mimeChecker.wantedMimeTypes().isEmpty() || m_mimeChecker.isWantedCollection(col)) {
fetchItems(m_collections.value(collectionId));
+ } else {
+ // Consider collections that don't contain relevant mimetypes to be populated
+ m_populatedCols.insert(collectionId);
+ Q_EMIT q_ptr->collectionPopulated(collectionId);
+ const auto idx = indexForCollection(Collection(collectionId));
+ Q_ASSERT(idx.isValid());
+ dataChanged(idx, idx);
}
}
}
--
cgit v0.11.2