summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--components/kube/tests/tst_composerview.qml3
-rw-r--r--framework/src/domain/composercontroller.cpp10
-rw-r--r--framework/src/domain/composercontroller.h1
3 files changed, 11 insertions, 3 deletions
diff --git a/components/kube/tests/tst_composerview.qml b/components/kube/tests/tst_composerview.qml
index a315c79a..67db6ef6 100644
--- a/components/kube/tests/tst_composerview.qml
+++ b/components/kube/tests/tst_composerview.qml
@@ -92,7 +92,6 @@ TestCase {
92 sendMailButton.clicked() 92 sendMailButton.clicked()
93 93
94 tryVerify(function(){ return TestStore.load("mail", {resource: "resource2"}) }) 94 tryVerify(function(){ return TestStore.load("mail", {resource: "resource2"}) })
95 //TODO ensure draft is deleted 95 tryVerify(function(){ return !TestStore.load("mail", {resource: "resource1"}) })
96 //TODO ensure draft is deleted
97 } 96 }
98} 97}
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};