summaryrefslogtreecommitdiffstats
path: root/common/resourcefacade.cpp
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2015-07-08 16:48:41 +0200
committerChristian Mollekopf <chrigi_1@fastmail.fm>2015-07-08 16:48:41 +0200
commit3fe20509c29c40305d0362adbc787edfc29e96d4 (patch)
treef11f9e2604c56ccaa8606023e89b495928d990b3 /common/resourcefacade.cpp
parentc0a8d67cde03e33bf21e0f186f85d4c89c7ff572 (diff)
downloadsink-3fe20509c29c40305d0362adbc787edfc29e96d4.tar.gz
sink-3fe20509c29c40305d0362adbc787edfc29e96d4.zip
Filter queries by available resources, and filter resources by
resource-types
Diffstat (limited to 'common/resourcefacade.cpp')
-rw-r--r--common/resourcefacade.cpp14
1 files changed, 9 insertions, 5 deletions
diff --git a/common/resourcefacade.cpp b/common/resourcefacade.cpp
index 63b3126..9792934 100644
--- a/common/resourcefacade.cpp
+++ b/common/resourcefacade.cpp
@@ -56,11 +56,15 @@ KAsync::Job<void> ResourceFacade::remove(const Akonadi2::ApplicationDomain::Akon
56KAsync::Job<void> ResourceFacade::load(const Akonadi2::Query &query, const QSharedPointer<Akonadi2::ResultProvider<typename Akonadi2::ApplicationDomain::AkonadiResource::Ptr> > &resultProvider) 56KAsync::Job<void> ResourceFacade::load(const Akonadi2::Query &query, const QSharedPointer<Akonadi2::ResultProvider<typename Akonadi2::ApplicationDomain::AkonadiResource::Ptr> > &resultProvider)
57{ 57{
58 return KAsync::start<void>([query, resultProvider]() { 58 return KAsync::start<void>([query, resultProvider]() {
59 for (const auto &res : ResourceConfig::getResources()) { 59 const auto configuredResources = ResourceConfig::getResources();
60 auto resource = Akonadi2::ApplicationDomain::AkonadiResource::Ptr::create(); 60 for (const auto &res : configuredResources.keys()) {
61 resource->setProperty("identifier", res.first); 61 const auto type = configuredResources.value(res);
62 resource->setProperty("type", res.second); 62 if (!query.propertyFilter.contains("type") || query.propertyFilter.value("type").toByteArray() == type) {
63 resultProvider->add(resource); 63 auto resource = Akonadi2::ApplicationDomain::AkonadiResource::Ptr::create();
64 resource->setProperty("identifier", res);
65 resource->setProperty("type", type);
66 resultProvider->add(resource);
67 }
64 } 68 }
65 //TODO initialResultSetComplete should be implicit 69 //TODO initialResultSetComplete should be implicit
66 resultProvider->initialResultSetComplete(); 70 resultProvider->initialResultSetComplete();