diff options
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 | } |