From d3c6ba904798768b0c83c2e182c27b1c624f78ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Vr=C3=A1til?= 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