summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2016-12-06 19:17:12 +0100
committerChristian Mollekopf <chrigi_1@fastmail.fm>2016-12-06 19:17:12 +0100
commit6fac57b35a9a87e667e49be464a52c585c6dd66e (patch)
tree2d5ecce4894a159fc68ba776addff2322be6b7be
parent4de82d8eafdf0ed9fe48f6bc6627c14332f0fc3c (diff)
downloadsink-6fac57b35a9a87e667e49be464a52c585c6dd66e.tar.gz
sink-6fac57b35a9a87e667e49be464a52c585c6dd66e.zip
Support for sent mail folder
-rw-r--r--common/domain/applicationdomaintype.cpp6
-rw-r--r--common/domain/applicationdomaintype.h2
-rw-r--r--common/specialpurposepreprocessor.cpp18
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 {
365namespace Mail { 365namespace 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
74void SpecialPurposeProcessor::moveToFolder(Sink::ApplicationDomain::ApplicationDomainType &newEntity) 75void 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