diff options
author | Christian Mollekopf <chrigi_1@fastmail.fm> | 2017-03-15 00:13:48 +0100 |
---|---|---|
committer | Christian Mollekopf <chrigi_1@fastmail.fm> | 2017-03-15 00:13:48 +0100 |
commit | 6f032b73c42ac4133e1edecc2ef436645ad7ba69 (patch) | |
tree | 6ee3ee9163fffc017d3c46a58aabdd145c7002cf /common/specialpurposepreprocessor.cpp | |
parent | eebb53ec4752f9cb1d2fb81a3353246844cdbd49 (diff) | |
download | sink-6f032b73c42ac4133e1edecc2ef436645ad7ba69.tar.gz sink-6f032b73c42ac4133e1edecc2ef436645ad7ba69.zip |
Fixed specialpurpose preprocessor
Set the flags on new mail as well
Diffstat (limited to 'common/specialpurposepreprocessor.cpp')
-rw-r--r-- | common/specialpurposepreprocessor.cpp | 18 |
1 files changed, 15 insertions, 3 deletions
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 | |||
104 | 104 | ||
105 | void SpecialPurposeProcessor::newEntity(Sink::ApplicationDomain::ApplicationDomainType &newEntity) | 105 | void SpecialPurposeProcessor::newEntity(Sink::ApplicationDomain::ApplicationDomainType &newEntity) |
106 | { | 106 | { |
107 | moveToFolder(newEntity); | 107 | auto mail = newEntity.cast<ApplicationDomain::Mail>(); |
108 | const auto folder = mail.getFolder(); | ||
109 | if (folder.isEmpty()) { | ||
110 | moveToFolder(newEntity); | ||
111 | } else { | ||
112 | bool isDraft = findFolder(ApplicationDomain::SpecialPurpose::Mail::drafts) == folder; | ||
113 | bool isSent = findFolder(ApplicationDomain::SpecialPurpose::Mail::sent) == folder; | ||
114 | bool isTrash = findFolder(ApplicationDomain::SpecialPurpose::Mail::trash) == folder; | ||
115 | mail.setDraft(isDraft); | ||
116 | mail.setTrash(isTrash); | ||
117 | mail.setSent(isSent); | ||
118 | } | ||
119 | |||
108 | } | 120 | } |
109 | 121 | ||
110 | void SpecialPurposeProcessor::modifiedEntity(const Sink::ApplicationDomain::ApplicationDomainType &oldEntity, Sink::ApplicationDomain::ApplicationDomainType &newEntity) | 122 | void SpecialPurposeProcessor::modifiedEntity(const Sink::ApplicationDomain::ApplicationDomainType &oldEntity, Sink::ApplicationDomain::ApplicationDomainType &newEntity) |
@@ -118,8 +130,8 @@ void SpecialPurposeProcessor::modifiedEntity(const Sink::ApplicationDomain::Appl | |||
118 | bool isSent = findFolder(ApplicationDomain::SpecialPurpose::Mail::sent) == folder; | 130 | bool isSent = findFolder(ApplicationDomain::SpecialPurpose::Mail::sent) == folder; |
119 | bool isTrash = findFolder(ApplicationDomain::SpecialPurpose::Mail::trash) == folder; | 131 | bool isTrash = findFolder(ApplicationDomain::SpecialPurpose::Mail::trash) == folder; |
120 | mail.setDraft(isDraft); | 132 | mail.setDraft(isDraft); |
121 | mail.setTrash(isSent); | 133 | mail.setTrash(isTrash); |
122 | mail.setSent(isTrash); | 134 | mail.setSent(isSent); |
123 | } else { | 135 | } else { |
124 | moveToFolder(newEntity); | 136 | moveToFolder(newEntity); |
125 | } | 137 | } |