From 07b55e8e8b21873eeb5b39f1306f6665b1630c46 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Tue, 24 Jan 2017 10:48:53 +0100 Subject: New KAsync api --- framework/domain/composercontroller.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'framework') diff --git a/framework/domain/composercontroller.cpp b/framework/domain/composercontroller.cpp index 85faf235..207c5047 100644 --- a/framework/domain/composercontroller.cpp +++ b/framework/domain/composercontroller.cpp @@ -230,7 +230,7 @@ void ComposerController::send() query.containsFilter(ApplicationDomain::ResourceCapabilities::Mail::transport); query.filter(accountId); auto job = Store::fetchAll(query) - .then>([=](const QList &resources) -> KAsync::Job { + .then([=](const QList &resources) { if (!resources.isEmpty()) { auto resourceId = resources[0]->identifier(); SinkLog() << "Sending message via resource: " << resourceId; @@ -240,12 +240,13 @@ void ComposerController::send() .then([=] { //Trigger a sync, but don't wait for it. Store::synchronize(Sink::SyncScope{}.resourceFilter(resourceId)).exec(); - return KAsync::null(); }); } + SinkWarning() << "Failed to find a mailtransport resource"; return KAsync::error(0, "Failed to find a MailTransport resource."); }) .then([&] (const KAsync::Error &error) { + SinkLog() << "Message was sent: "; emit done(); }); run(job); @@ -259,6 +260,7 @@ void ComposerController::updateSaveAsDraftAction() void ComposerController::saveAsDraft() { + SinkLog() << "Save as draft"; const auto accountId = getAccountId(); auto existingMail = getExistingMail(); @@ -274,15 +276,19 @@ void ComposerController::saveAsDraft() auto job = [&] { if (existingMail.identifier().isEmpty()) { + SinkLog() << "Creating a new draft" << existingMail.identifier(); Query query; query.containsFilter(ApplicationDomain::ResourceCapabilities::Mail::drafts); query.filter(accountId); return Store::fetchOne(query) - .then([=](const SinkResource &resource) -> KAsync::Job { + .then([=](const SinkResource &resource) { Mail mail(resource.identifier()); mail.setDraft(true); mail.setMimeMessage(message->encodedContent()); return Store::create(mail); + }) + .onError([] (const KAsync::Error &error) { + SinkWarning() << "Error while creating draft: " << error.errorMessage; }); } else { SinkLog() << "Modifying an existing mail" << existingMail.identifier(); @@ -291,7 +297,7 @@ void ComposerController::saveAsDraft() return Store::modify(existingMail); } }(); - job = job.then([&] { + job = job.then([&] (const KAsync::Error &) { emit done(); }); run(job); -- cgit v1.2.3