diff options
Diffstat (limited to 'common')
-rw-r--r-- | common/facade.cpp | 14 | ||||
-rw-r--r-- | common/modelresult.cpp | 8 | ||||
-rw-r--r-- | common/modelresult.h | 2 |
3 files changed, 15 insertions, 9 deletions
diff --git a/common/facade.cpp b/common/facade.cpp index 850d28b..68770b5 100644 --- a/common/facade.cpp +++ b/common/facade.cpp | |||
@@ -350,12 +350,14 @@ template<class DomainType> | |||
350 | qint64 GenericFacade<DomainType>::executeInitialQuery(const Akonadi2::Query &query, const typename DomainType::Ptr &parent, Akonadi2::ResultProviderInterface<typename DomainType::Ptr> &resultProvider) | 350 | qint64 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 && !query.parentProperty.isEmpty()) { | 353 | if (!query.parentProperty.isEmpty()) { |
354 | Trace() << "Running initial query for parent:" << parent->identifier(); | 354 | if (parent) { |
355 | modifiedQuery.propertyFilter.insert(query.parentProperty, parent->identifier()); | 355 | Trace() << "Running initial query for parent:" << parent->identifier(); |
356 | } else { | 356 | modifiedQuery.propertyFilter.insert(query.parentProperty, parent->identifier()); |
357 | Trace() << "Running initial query for toplevel"; | 357 | } else { |
358 | modifiedQuery.propertyFilter.insert(query.parentProperty, QVariant()); | 358 | Trace() << "Running initial query for toplevel"; |
359 | modifiedQuery.propertyFilter.insert(query.parentProperty, QVariant()); | ||
360 | } | ||
359 | } | 361 | } |
360 | return load(modifiedQuery, [&](Akonadi2::Storage::Transaction &transaction, QSet<QByteArray> &remainingFilters) -> ResultSet { | 362 | return load(modifiedQuery, [&](Akonadi2::Storage::Transaction &transaction, QSet<QByteArray> &remainingFilters) -> ResultSet { |
361 | return loadInitialResultSet(modifiedQuery, transaction, remainingFilters); | 363 | return loadInitialResultSet(modifiedQuery, transaction, remainingFilters); |
diff --git a/common/modelresult.cpp b/common/modelresult.cpp index 4102cda..935e2e8 100644 --- a/common/modelresult.cpp +++ b/common/modelresult.cpp | |||
@@ -27,7 +27,8 @@ | |||
27 | template<class T, class Ptr> | 27 | template<class T, class Ptr> |
28 | ModelResult<T, Ptr>::ModelResult(const Akonadi2::Query &query, const QList<QByteArray> &propertyColumns) | 28 | ModelResult<T, Ptr>::ModelResult(const Akonadi2::Query &query, const QList<QByteArray> &propertyColumns) |
29 | :QAbstractItemModel(), | 29 | :QAbstractItemModel(), |
30 | mPropertyColumns(propertyColumns) | 30 | mPropertyColumns(propertyColumns), |
31 | mQuery(query) | ||
31 | { | 32 | { |
32 | } | 33 | } |
33 | 34 | ||
@@ -42,7 +43,10 @@ static qint64 getIdentifier(const QModelIndex &idx) | |||
42 | template<class T, class Ptr> | 43 | template<class T, class Ptr> |
43 | qint64 ModelResult<T, Ptr>::parentId(const Ptr &value) | 44 | qint64 ModelResult<T, Ptr>::parentId(const Ptr &value) |
44 | { | 45 | { |
45 | return qHash(value->getProperty("parent").toByteArray()); | 46 | if (!mQuery.parentProperty.isEmpty()) { |
47 | return qHash(value->getProperty(mQuery.parentProperty).toByteArray()); | ||
48 | } | ||
49 | return qHash(QByteArray()); | ||
46 | } | 50 | } |
47 | 51 | ||
48 | template<class T, class Ptr> | 52 | template<class T, class Ptr> |
diff --git a/common/modelresult.h b/common/modelresult.h index 40a9d9d..66dfce5 100644 --- a/common/modelresult.h +++ b/common/modelresult.h | |||
@@ -53,7 +53,7 @@ public: | |||
53 | void setFetcher(const std::function<void(const Ptr &parent)> &fetcher); | 53 | void setFetcher(const std::function<void(const Ptr &parent)> &fetcher); |
54 | 54 | ||
55 | private: | 55 | private: |
56 | static qint64 parentId(const Ptr &value); | 56 | qint64 parentId(const Ptr &value); |
57 | QModelIndex createIndexFromId(const qint64 &id) const; | 57 | QModelIndex createIndexFromId(const qint64 &id) const; |
58 | void fetchEntities(const QModelIndex &parent); | 58 | void fetchEntities(const QModelIndex &parent); |
59 | 59 | ||