From 9f1dc2dc535011a782c8661fa75b388e77dda23e Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Mon, 8 Jan 2018 14:45:07 +0100 Subject: Remove drafts after sending the message --- components/kube/tests/tst_composerview.qml | 3 +-- framework/src/domain/composercontroller.cpp | 10 +++++++++- 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 { sendMailButton.clicked() tryVerify(function(){ return TestStore.load("mail", {resource: "resource2"}) }) - //TODO ensure draft is deleted - //TODO ensure draft is deleted + tryVerify(function(){ return !TestStore.load("mail", {resource: "resource1"}) }) } } 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) using namespace Sink; using namespace Sink::ApplicationDomain; - Query query(*message.value()); + auto msg = message.value(); + Q_ASSERT(msg); + Query query(*msg); query.request(); Store::fetchOne(query).then([this, loadAsDraft](const Mail &mail) { + mRemoveDraft = loadAsDraft; setExistingMail(mail); const auto mailData = KMime::CRLFtoLF(mail.getMimeMessage()); @@ -468,6 +471,11 @@ void ComposerController::send() .then([=] { //Trigger a sync, but don't wait for it. Store::synchronize(Sink::SyncScope{}.resourceFilter(resourceId)).exec(); + if (mRemoveDraft) { + SinkLog() << "Removing draft message."; + //Remove draft + Store::remove(getExistingMail()).exec(); + } }); } 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: QScopedPointer mRecipientCompleter; QScopedPointer mIdentitySelector; + bool mRemoveDraft = false; }; -- cgit v1.2.3