summaryrefslogtreecommitdiffstats
path: root/framework/src
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2018-01-08 14:45:07 +0100
committerChristian Mollekopf <chrigi_1@fastmail.fm>2018-01-08 16:26:38 +0100
commit9f1dc2dc535011a782c8661fa75b388e77dda23e (patch)
treef2050a20db5a819f0a6cf5d2137a3fcfbd7b9c26 /framework/src
parented317a9be63c6877702d0871e5fa1bef34ab799f (diff)
downloadkube-9f1dc2dc535011a782c8661fa75b388e77dda23e.tar.gz
kube-9f1dc2dc535011a782c8661fa75b388e77dda23e.zip
Remove drafts after sending the message
Diffstat (limited to 'framework/src')
-rw-r--r--framework/src/domain/composercontroller.cpp10
-rw-r--r--framework/src/domain/composercontroller.h1
2 files changed, 10 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";
diff --git a/framework/src/domain/composercontroller.h b/framework/src/domain/composercontroller.h
index df3c7b1b..0ace365b 100644
--- a/framework/src/domain/composercontroller.h
+++ b/framework/src/domain/composercontroller.h
@@ -103,4 +103,5 @@ private:
103 103
104 QScopedPointer<Completer> mRecipientCompleter; 104 QScopedPointer<Completer> mRecipientCompleter;
105 QScopedPointer<Selector> mIdentitySelector; 105 QScopedPointer<Selector> mIdentitySelector;
106 bool mRemoveDraft = false;
106}; 107};