diff options
author | Christian Mollekopf <chrigi_1@fastmail.fm> | 2018-01-08 14:45:07 +0100 |
---|---|---|
committer | Christian Mollekopf <chrigi_1@fastmail.fm> | 2018-01-08 16:26:38 +0100 |
commit | 9f1dc2dc535011a782c8661fa75b388e77dda23e (patch) | |
tree | f2050a20db5a819f0a6cf5d2137a3fcfbd7b9c26 /framework/src/domain/composercontroller.cpp | |
parent | ed317a9be63c6877702d0871e5fa1bef34ab799f (diff) | |
download | kube-9f1dc2dc535011a782c8661fa75b388e77dda23e.tar.gz kube-9f1dc2dc535011a782c8661fa75b388e77dda23e.zip |
Remove drafts after sending the message
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"; |