From 6f032b73c42ac4133e1edecc2ef436645ad7ba69 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Wed, 15 Mar 2017 00:13:48 +0100 Subject: Fixed specialpurpose preprocessor Set the flags on new mail as well --- common/specialpurposepreprocessor.cpp | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'common/specialpurposepreprocessor.cpp') diff --git a/common/specialpurposepreprocessor.cpp b/common/specialpurposepreprocessor.cpp index be5fa50..cd3a4de 100644 --- a/common/specialpurposepreprocessor.cpp +++ b/common/specialpurposepreprocessor.cpp @@ -104,7 +104,19 @@ void SpecialPurposeProcessor::moveToFolder(Sink::ApplicationDomain::ApplicationD void SpecialPurposeProcessor::newEntity(Sink::ApplicationDomain::ApplicationDomainType &newEntity) { - moveToFolder(newEntity); + auto mail = newEntity.cast(); + const auto folder = mail.getFolder(); + if (folder.isEmpty()) { + moveToFolder(newEntity); + } else { + bool isDraft = findFolder(ApplicationDomain::SpecialPurpose::Mail::drafts) == folder; + bool isSent = findFolder(ApplicationDomain::SpecialPurpose::Mail::sent) == folder; + bool isTrash = findFolder(ApplicationDomain::SpecialPurpose::Mail::trash) == folder; + mail.setDraft(isDraft); + mail.setTrash(isTrash); + mail.setSent(isSent); + } + } void SpecialPurposeProcessor::modifiedEntity(const Sink::ApplicationDomain::ApplicationDomainType &oldEntity, Sink::ApplicationDomain::ApplicationDomainType &newEntity) @@ -118,8 +130,8 @@ void SpecialPurposeProcessor::modifiedEntity(const Sink::ApplicationDomain::Appl bool isSent = findFolder(ApplicationDomain::SpecialPurpose::Mail::sent) == folder; bool isTrash = findFolder(ApplicationDomain::SpecialPurpose::Mail::trash) == folder; mail.setDraft(isDraft); - mail.setTrash(isSent); - mail.setSent(isTrash); + mail.setTrash(isTrash); + mail.setSent(isSent); } else { moveToFolder(newEntity); } -- cgit v1.2.3