diff options
Diffstat (limited to 'framework/src/domain/composercontroller.cpp')
-rw-r--r-- | framework/src/domain/composercontroller.cpp | 10 |
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"; |