summaryrefslogtreecommitdiffstats
path: root/common/store.cpp
diff options
context:
space:
mode:
authorMinijackson <minijackson@riseup.net>2018-06-11 11:08:12 +0200
committerMinijackson <minijackson@riseup.net>2018-06-11 11:08:12 +0200
commita520527c8983bf1cba50fd3d86d406e7e68ddb88 (patch)
treea2b4a104e00c6a14c11651a2112b6b45ce93babd /common/store.cpp
parentbdf8ada25760ca9f4054d9ac719c703ce8abc300 (diff)
downloadsink-a520527c8983bf1cba50fd3d86d406e7e68ddb88.tar.gz
sink-a520527c8983bf1cba50fd3d86d406e7e68ddb88.zip
Add overlap query
Diffstat (limited to 'common/store.cpp')
-rw-r--r--common/store.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/common/store.cpp b/common/store.cpp
index be2488a..0328c7f 100644
--- a/common/store.cpp
+++ b/common/store.cpp
@@ -117,11 +117,13 @@ QPair<typename AggregatingResultEmitter<typename DomainType::Ptr>::Ptr, typenam
117 117
118 //Filter resources by available content types (unless the query already specifies a capability filter) 118 //Filter resources by available content types (unless the query already specifies a capability filter)
119 auto resourceFilter = query.getResourceFilter(); 119 auto resourceFilter = query.getResourceFilter();
120 if (!resourceFilter.propertyFilter.contains(ApplicationDomain::SinkResource::Capabilities::name)) { 120 if (!resourceFilter.propertyFilter.contains({ApplicationDomain::SinkResource::Capabilities::name})) {
121 resourceFilter.propertyFilter.insert(ApplicationDomain::SinkResource::Capabilities::name, Query::Comparator{ApplicationDomain::getTypeName<DomainType>(), Query::Comparator::Contains}); 121 resourceFilter.propertyFilter.insert({ApplicationDomain::SinkResource::Capabilities::name}, Query::Comparator{ApplicationDomain::getTypeName<DomainType>(), Query::Comparator::Contains});
122 } 122 }
123 resourceQuery.setFilter(resourceFilter); 123 resourceQuery.setFilter(resourceFilter);
124 resourceQuery.requestedProperties << resourceFilter.propertyFilter.keys(); 124 for (auto const &properties : resourceFilter.propertyFilter.keys()) {
125 resourceQuery.requestedProperties << properties;
126 }
125 127
126 auto result = facade->load(resourceQuery, resourceCtx); 128 auto result = facade->load(resourceQuery, resourceCtx);
127 auto emitter = result.second; 129 auto emitter = result.second;
@@ -403,8 +405,8 @@ KAsync::Job<void> Store::synchronize(const Sink::SyncScope &scope)
403{ 405{
404 auto resourceFilter = scope.getResourceFilter(); 406 auto resourceFilter = scope.getResourceFilter();
405 //Filter resources by type by default 407 //Filter resources by type by default
406 if (!resourceFilter.propertyFilter.contains(ApplicationDomain::SinkResource::Capabilities::name) && !scope.type().isEmpty()) { 408 if (!resourceFilter.propertyFilter.contains({ApplicationDomain::SinkResource::Capabilities::name}) && !scope.type().isEmpty()) {
407 resourceFilter.propertyFilter.insert(ApplicationDomain::SinkResource::Capabilities::name, Query::Comparator{scope.type(), Query::Comparator::Contains}); 409 resourceFilter.propertyFilter.insert({ApplicationDomain::SinkResource::Capabilities::name}, Query::Comparator{scope.type(), Query::Comparator::Contains});
408 } 410 }
409 Sink::Query query; 411 Sink::Query query;
410 query.setFilter(resourceFilter); 412 query.setFilter(resourceFilter);