summaryrefslogtreecommitdiffstats
path: root/framework/src/domain/composercontroller.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/domain/composercontroller.cpp')
-rw-r--r--framework/src/domain/composercontroller.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/framework/src/domain/composercontroller.cpp b/framework/src/domain/composercontroller.cpp
index de7ab4b1..60e955ea 100644
--- a/framework/src/domain/composercontroller.cpp
+++ b/framework/src/domain/composercontroller.cpp
@@ -342,9 +342,12 @@ void ComposerController::loadMessage(const QVariant &message, bool loadAsDraft)
342 using namespace Sink; 342 using namespace Sink;
343 using namespace Sink::ApplicationDomain; 343 using namespace Sink::ApplicationDomain;
344 344
345 Query query(*message.value<Mail::Ptr>()); 345 auto msg = message.value<Mail::Ptr>();
346 Q_ASSERT(msg);
347 Query query(*msg);
346 query.request<Mail::MimeMessage>(); 348 query.request<Mail::MimeMessage>();
347 Store::fetchOne<Mail>(query).then([this, loadAsDraft](const Mail &mail) { 349 Store::fetchOne<Mail>(query).then([this, loadAsDraft](const Mail &mail) {
350 mRemoveDraft = loadAsDraft;
348 setExistingMail(mail); 351 setExistingMail(mail);
349 352
350 const auto mailData = KMime::CRLFtoLF(mail.getMimeMessage()); 353 const auto mailData = KMime::CRLFtoLF(mail.getMimeMessage());
@@ -468,6 +471,11 @@ void ComposerController::send()
468 .then<void>([=] { 471 .then<void>([=] {
469 //Trigger a sync, but don't wait for it. 472 //Trigger a sync, but don't wait for it.
470 Store::synchronize(Sink::SyncScope{}.resourceFilter(resourceId)).exec(); 473 Store::synchronize(Sink::SyncScope{}.resourceFilter(resourceId)).exec();
474 if (mRemoveDraft) {
475 SinkLog() << "Removing draft message.";
476 //Remove draft
477 Store::remove(getExistingMail()).exec();
478 }
471 }); 479 });
472 } 480 }
473 SinkWarning() << "Failed to find a mailtransport resource"; 481 SinkWarning() << "Failed to find a mailtransport resource";