summaryrefslogtreecommitdiffstats
path: root/common/facade.cpp
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2015-11-24 23:00:45 +0100
committerChristian Mollekopf <chrigi_1@fastmail.fm>2015-11-24 23:00:45 +0100
commit9ad96df6cd1526de32bff2b4f98491dd8318f760 (patch)
treee1b3da017f97a266efc3b081d59e502eb1f62bde /common/facade.cpp
parent110817a23463c71eacbc986af3ae509462758a3c (diff)
downloadsink-9ad96df6cd1526de32bff2b4f98491dd8318f760.tar.gz
sink-9ad96df6cd1526de32bff2b4f98491dd8318f760.zip
Use Query::parentProperty to express tree queries
That way we don't have to hardcode the parent property, and we can use the property to express non-tree queries as well.
Diffstat (limited to 'common/facade.cpp')
-rw-r--r--common/facade.cpp7
1 files changed, 3 insertions, 4 deletions
diff --git a/common/facade.cpp b/common/facade.cpp
index 08f7500..59972bf 100644
--- a/common/facade.cpp
+++ b/common/facade.cpp
@@ -350,12 +350,12 @@ template<class DomainType>
350qint64 GenericFacade<DomainType>::executeInitialQuery(const Akonadi2::Query &query, const typename DomainType::Ptr &parent, Akonadi2::ResultProviderInterface<typename DomainType::Ptr> &resultProvider) 350qint64 GenericFacade<DomainType>::executeInitialQuery(const Akonadi2::Query &query, const typename DomainType::Ptr &parent, Akonadi2::ResultProviderInterface<typename DomainType::Ptr> &resultProvider)
351{ 351{
352 auto modifiedQuery = query; 352 auto modifiedQuery = query;
353 if (parent) { 353 if (parent && !query.parentProperty.isEmpty()) {
354 Trace() << "Running initial query for parent:" << parent->identifier(); 354 Trace() << "Running initial query for parent:" << parent->identifier();
355 modifiedQuery.propertyFilter.insert("parent", parent->identifier()); 355 modifiedQuery.propertyFilter.insert(query.parentProperty, parent->identifier());
356 } else { 356 } else {
357 Trace() << "Running initial query for toplevel"; 357 Trace() << "Running initial query for toplevel";
358 modifiedQuery.propertyFilter.insert("parent", QVariant()); 358 modifiedQuery.propertyFilter.insert(query.parentProperty, QVariant());
359 } 359 }
360 return load(modifiedQuery, [&](Akonadi2::Storage::Transaction &transaction, QSet<QByteArray> &remainingFilters) -> ResultSet { 360 return load(modifiedQuery, [&](Akonadi2::Storage::Transaction &transaction, QSet<QByteArray> &remainingFilters) -> ResultSet {
361 return loadInitialResultSet(modifiedQuery, transaction, remainingFilters); 361 return loadInitialResultSet(modifiedQuery, transaction, remainingFilters);
@@ -365,6 +365,5 @@ qint64 GenericFacade<DomainType>::executeInitialQuery(const Akonadi2::Query &que
365template class Akonadi2::GenericFacade<Akonadi2::ApplicationDomain::Folder>; 365template class Akonadi2::GenericFacade<Akonadi2::ApplicationDomain::Folder>;
366template class Akonadi2::GenericFacade<Akonadi2::ApplicationDomain::Mail>; 366template class Akonadi2::GenericFacade<Akonadi2::ApplicationDomain::Mail>;
367template class Akonadi2::GenericFacade<Akonadi2::ApplicationDomain::Event>; 367template class Akonadi2::GenericFacade<Akonadi2::ApplicationDomain::Event>;
368// template class Akonadi2::GenericFacade<Akonadi2::ApplicationDomain::AkonadiResource>;
369 368
370#include "facade.moc" 369#include "facade.moc"