summaryrefslogtreecommitdiffstats
path: root/common
diff options
context:
space:
mode:
Diffstat (limited to 'common')
-rw-r--r--common/clientapi.cpp10
-rw-r--r--common/modelresult.cpp6
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
209template<class T, class Ptr> 213template<class T, class Ptr>