diff options
Diffstat (limited to 'common')
-rw-r--r-- | common/clientapi.cpp | 10 | ||||
-rw-r--r-- | common/modelresult.cpp | 6 |
2 files changed, 14 insertions, 2 deletions
diff --git a/common/clientapi.cpp b/common/clientapi.cpp index 061d920..644d60c 100644 --- a/common/clientapi.cpp +++ b/common/clientapi.cpp | |||
@@ -90,7 +90,15 @@ QSharedPointer<QAbstractItemModel> Store::loadModel(Query query) | |||
90 | //* The result provider needs to live for as long as results are provided (until the last thread exits). | 90 | //* The result provider needs to live for as long as results are provided (until the last thread exits). |
91 | 91 | ||
92 | // Query all resources and aggregate results | 92 | // Query all resources and aggregate results |
93 | KAsync::iterate(getResources(query.resources, ApplicationDomain::getTypeName<DomainType>())) | 93 | auto resources = getResources(query.resources, ApplicationDomain::getTypeName<DomainType>()); |
94 | if (resources.isEmpty()) { | ||
95 | Warning() << "No resources available."; | ||
96 | auto resultProvider = Akonadi2::ResultProvider<typename DomainType::Ptr>::Ptr::create(); | ||
97 | model->setEmitter(resultProvider->emitter()); | ||
98 | resultProvider->initialResultSetComplete(typename DomainType::Ptr()); | ||
99 | return model; | ||
100 | } | ||
101 | KAsync::iterate(resources) | ||
94 | .template each<void, QByteArray>([query, model](const QByteArray &resource, KAsync::Future<void> &future) { | 102 | .template each<void, QByteArray>([query, model](const QByteArray &resource, KAsync::Future<void> &future) { |
95 | auto facade = FacadeFactory::instance().getFacade<DomainType>(resourceName(resource), resource); | 103 | auto facade = FacadeFactory::instance().getFacade<DomainType>(resourceName(resource), resource); |
96 | if (facade) { | 104 | if (facade) { |
diff --git a/common/modelresult.cpp b/common/modelresult.cpp index d2a7e88..d18dba1 100644 --- a/common/modelresult.cpp +++ b/common/modelresult.cpp | |||
@@ -203,7 +203,11 @@ void ModelResult<T, Ptr>::fetchEntities(const QModelIndex &parent) | |||
203 | const auto id = getIdentifier(parent); | 203 | const auto id = getIdentifier(parent); |
204 | mEntityChildrenFetched.insert(id); | 204 | mEntityChildrenFetched.insert(id); |
205 | Trace() << "Loading child entities"; | 205 | Trace() << "Loading child entities"; |
206 | loadEntities(parent.data(DomainObjectRole).template value<Ptr>()); | 206 | if (loadEntities) { |
207 | loadEntities(parent.data(DomainObjectRole).template value<Ptr>()); | ||
208 | } else { | ||
209 | Warning() << "No way to fetch entities"; | ||
210 | } | ||
207 | } | 211 | } |
208 | 212 | ||
209 | template<class T, class Ptr> | 213 | template<class T, class Ptr> |