diff options
-rw-r--r-- | components/kube/tests/tst_composerview.qml | 3 | ||||
-rw-r--r-- | framework/src/domain/composercontroller.cpp | 10 | ||||
-rw-r--r-- | framework/src/domain/composercontroller.h | 1 |
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 | }; |