diff options
author | Christian Mollekopf <chrigi_1@fastmail.fm> | 2016-12-06 19:17:12 +0100 |
---|---|---|
committer | Christian Mollekopf <chrigi_1@fastmail.fm> | 2016-12-06 19:17:12 +0100 |
commit | 6fac57b35a9a87e667e49be464a52c585c6dd66e (patch) | |
tree | 2d5ecce4894a159fc68ba776addff2322be6b7be | |
parent | 4de82d8eafdf0ed9fe48f6bc6627c14332f0fc3c (diff) | |
download | sink-6fac57b35a9a87e667e49be464a52c585c6dd66e.tar.gz sink-6fac57b35a9a87e667e49be464a52c585c6dd66e.zip |
Support for sent mail folder
-rw-r--r-- | common/domain/applicationdomaintype.cpp | 6 | ||||
-rw-r--r-- | common/domain/applicationdomaintype.h | 2 | ||||
-rw-r--r-- | common/specialpurposepreprocessor.cpp | 18 |
3 files changed, 16 insertions, 10 deletions
diff --git a/common/domain/applicationdomaintype.cpp b/common/domain/applicationdomaintype.cpp index 1e54622..a655871 100644 --- a/common/domain/applicationdomaintype.cpp +++ b/common/domain/applicationdomaintype.cpp | |||
@@ -277,7 +277,7 @@ SinkResource DummyResource::create(const QByteArray &account) | |||
277 | auto &&resource = ApplicationDomainType::createEntity<SinkResource>(); | 277 | auto &&resource = ApplicationDomainType::createEntity<SinkResource>(); |
278 | resource.setResourceType("sink.dummy"); | 278 | resource.setResourceType("sink.dummy"); |
279 | resource.setAccount(account); | 279 | resource.setAccount(account); |
280 | resource.setCapabilities(QByteArrayList() << ResourceCapabilities::Mail::storage << "-folder.rename"); | 280 | resource.setCapabilities(QByteArrayList() << ResourceCapabilities::Mail::storage << "-folder.rename" << ResourceCapabilities::Mail::sent); |
281 | // resource.setProperty("capabilities", QVariant::fromValue(QByteArrayList() << ResourceCapabilities::Mail::storage << ResourceCapabilities::Mail::drafts << "-folder.rename" << ResourceCapabilities::Mail::trash)); | 281 | // resource.setProperty("capabilities", QVariant::fromValue(QByteArrayList() << ResourceCapabilities::Mail::storage << ResourceCapabilities::Mail::drafts << "-folder.rename" << ResourceCapabilities::Mail::trash)); |
282 | return resource; | 282 | return resource; |
283 | } | 283 | } |
@@ -287,7 +287,7 @@ SinkResource MaildirResource::create(const QByteArray &account) | |||
287 | auto &&resource = ApplicationDomainType::createEntity<SinkResource>(); | 287 | auto &&resource = ApplicationDomainType::createEntity<SinkResource>(); |
288 | resource.setResourceType("sink.maildir"); | 288 | resource.setResourceType("sink.maildir"); |
289 | resource.setAccount(account); | 289 | resource.setAccount(account); |
290 | resource.setCapabilities(QByteArrayList() << ResourceCapabilities::Mail::storage << ResourceCapabilities::Mail::drafts << "-folder.rename" << ResourceCapabilities::Mail::trash); | 290 | resource.setCapabilities(QByteArrayList() << ResourceCapabilities::Mail::storage << ResourceCapabilities::Mail::drafts << "-folder.rename" << ResourceCapabilities::Mail::trash << ResourceCapabilities::Mail::sent); |
291 | return resource; | 291 | return resource; |
292 | } | 292 | } |
293 | 293 | ||
@@ -305,7 +305,7 @@ SinkResource ImapResource::create(const QByteArray &account) | |||
305 | auto &&resource = ApplicationDomainType::createEntity<SinkResource>(); | 305 | auto &&resource = ApplicationDomainType::createEntity<SinkResource>(); |
306 | resource.setResourceType("sink.imap"); | 306 | resource.setResourceType("sink.imap"); |
307 | resource.setAccount(account); | 307 | resource.setAccount(account); |
308 | resource.setCapabilities(QByteArrayList() << ResourceCapabilities::Mail::storage << ResourceCapabilities::Mail::drafts << ResourceCapabilities::Mail::folderhierarchy << ResourceCapabilities::Mail::trash); | 308 | resource.setCapabilities(QByteArrayList() << ResourceCapabilities::Mail::storage << ResourceCapabilities::Mail::drafts << ResourceCapabilities::Mail::folderhierarchy << ResourceCapabilities::Mail::trash << ResourceCapabilities::Mail::sent); |
309 | return resource; | 309 | return resource; |
310 | } | 310 | } |
311 | 311 | ||
diff --git a/common/domain/applicationdomaintype.h b/common/domain/applicationdomaintype.h index 621a512..21e42cf 100644 --- a/common/domain/applicationdomaintype.h +++ b/common/domain/applicationdomaintype.h | |||
@@ -365,6 +365,7 @@ namespace ResourceCapabilities { | |||
365 | namespace Mail { | 365 | namespace Mail { |
366 | static constexpr const char *storage = "mail.storage"; | 366 | static constexpr const char *storage = "mail.storage"; |
367 | static constexpr const char *drafts = "mail.drafts"; | 367 | static constexpr const char *drafts = "mail.drafts"; |
368 | static constexpr const char *sent = "mail.sent"; | ||
368 | static constexpr const char *trash = "mail.trash"; | 369 | static constexpr const char *trash = "mail.trash"; |
369 | static constexpr const char *transport = "mail.transport"; | 370 | static constexpr const char *transport = "mail.transport"; |
370 | static constexpr const char *folderhierarchy = "mail.folderhierarchy"; | 371 | static constexpr const char *folderhierarchy = "mail.folderhierarchy"; |
@@ -376,6 +377,7 @@ namespace Mail { | |||
376 | static constexpr const char *inbox = "inbox"; | 377 | static constexpr const char *inbox = "inbox"; |
377 | static constexpr const char *drafts = "drafts"; | 378 | static constexpr const char *drafts = "drafts"; |
378 | static constexpr const char *trash = "trash"; | 379 | static constexpr const char *trash = "trash"; |
380 | static constexpr const char *sent = "sent"; | ||
379 | }; | 381 | }; |
380 | }; | 382 | }; |
381 | 383 | ||
diff --git a/common/specialpurposepreprocessor.cpp b/common/specialpurposepreprocessor.cpp index b3a6bab..ce1a218 100644 --- a/common/specialpurposepreprocessor.cpp +++ b/common/specialpurposepreprocessor.cpp | |||
@@ -13,9 +13,10 @@ static QHash<QByteArray, QString> specialPurposeFolders() | |||
13 | //FIXME localize | 13 | //FIXME localize |
14 | //TODO inbox | 14 | //TODO inbox |
15 | //TODO use standardized values | 15 | //TODO use standardized values |
16 | hash.insert("drafts", "Drafts"); | 16 | hash.insert(ApplicationDomain::SpecialPurpose::Mail::drafts, "Drafts"); |
17 | hash.insert("trash", "Trash"); | 17 | hash.insert(ApplicationDomain::SpecialPurpose::Mail::trash, "Trash"); |
18 | hash.insert("inbox", "Inbox"); | 18 | hash.insert(ApplicationDomain::SpecialPurpose::Mail::inbox, "Inbox"); |
19 | hash.insert(ApplicationDomain::SpecialPurpose::Mail::sent, "Sent"); | ||
19 | return hash; | 20 | return hash; |
20 | } | 21 | } |
21 | 22 | ||
@@ -73,12 +74,15 @@ QByteArray SpecialPurposeProcessor::ensureFolder(const QByteArray &specialPurpos | |||
73 | 74 | ||
74 | void SpecialPurposeProcessor::moveToFolder(Sink::ApplicationDomain::ApplicationDomainType &newEntity) | 75 | void SpecialPurposeProcessor::moveToFolder(Sink::ApplicationDomain::ApplicationDomainType &newEntity) |
75 | { | 76 | { |
76 | if (newEntity.getProperty("trash").toBool()) { | 77 | if (newEntity.getProperty(ApplicationDomain::Mail::Trash::name).toBool()) { |
77 | newEntity.setProperty("folder", ensureFolder("trash")); | 78 | newEntity.setProperty("folder", ensureFolder(ApplicationDomain::SpecialPurpose::Mail::trash)); |
78 | return; | 79 | return; |
79 | } | 80 | } |
80 | if (newEntity.getProperty("draft").toBool()) { | 81 | if (newEntity.getProperty(ApplicationDomain::Mail::Draft::name).toBool()) { |
81 | newEntity.setProperty("folder", ensureFolder("drafts")); | 82 | newEntity.setProperty("folder", ensureFolder(ApplicationDomain::SpecialPurpose::Mail::drafts)); |
83 | } | ||
84 | if (newEntity.getProperty(ApplicationDomain::Mail::Sent::name).toBool()) { | ||
85 | newEntity.setProperty("folder", ensureFolder(ApplicationDomain::SpecialPurpose::Mail::sent)); | ||
82 | } | 86 | } |
83 | } | 87 | } |
84 | 88 | ||