diff options
Diffstat (limited to 'common/resourcefacade.cpp')
-rw-r--r-- | common/resourcefacade.cpp | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/common/resourcefacade.cpp b/common/resourcefacade.cpp index 54185f8..6510c90 100644 --- a/common/resourcefacade.cpp +++ b/common/resourcefacade.cpp | |||
@@ -54,9 +54,15 @@ KAsync::Job<void> ResourceFacade::remove(const Akonadi2::ApplicationDomain::Akon | |||
54 | }); | 54 | }); |
55 | } | 55 | } |
56 | 56 | ||
57 | KAsync::Job<void> ResourceFacade::load(const Akonadi2::Query &query, const QSharedPointer<Akonadi2::ResultProvider<typename Akonadi2::ApplicationDomain::AkonadiResource::Ptr> > &resultProvider) | 57 | QPair<KAsync::Job<void>, typename Akonadi2::ResultEmitter<Akonadi2::ApplicationDomain::AkonadiResource::Ptr>::Ptr > ResourceFacade::load(const Akonadi2::Query &query) |
58 | { | 58 | { |
59 | return KAsync::start<void>([query, resultProvider]() { | 59 | auto resultProvider = new Akonadi2::ResultProvider<typename Akonadi2::ApplicationDomain::AkonadiResource::Ptr>(); |
60 | auto emitter = resultProvider->emitter(); | ||
61 | resultProvider->setFetcher([](const QSharedPointer<Akonadi2::ApplicationDomain::AkonadiResource> &) {}); | ||
62 | resultProvider->onDone([resultProvider]() { | ||
63 | delete resultProvider; | ||
64 | }); | ||
65 | auto job = KAsync::start<void>([query, resultProvider]() { | ||
60 | const auto configuredResources = ResourceConfig::getResources(); | 66 | const auto configuredResources = ResourceConfig::getResources(); |
61 | for (const auto &res : configuredResources.keys()) { | 67 | for (const auto &res : configuredResources.keys()) { |
62 | const auto type = configuredResources.value(res); | 68 | const auto type = configuredResources.value(res); |
@@ -68,8 +74,9 @@ KAsync::Job<void> ResourceFacade::load(const Akonadi2::Query &query, const QShar | |||
68 | } | 74 | } |
69 | } | 75 | } |
70 | //TODO initialResultSetComplete should be implicit | 76 | //TODO initialResultSetComplete should be implicit |
71 | resultProvider->initialResultSetComplete(); | 77 | resultProvider->initialResultSetComplete(Akonadi2::ApplicationDomain::AkonadiResource::Ptr()); |
72 | resultProvider->complete(); | 78 | resultProvider->complete(); |
73 | }); | 79 | }); |
80 | return qMakePair(job, emitter); | ||
74 | } | 81 | } |
75 | 82 | ||