From 6fac57b35a9a87e667e49be464a52c585c6dd66e Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Tue, 6 Dec 2016 19:17:12 +0100 Subject: Support for sent mail folder --- common/domain/applicationdomaintype.cpp | 6 +++--- common/domain/applicationdomaintype.h | 2 ++ common/specialpurposepreprocessor.cpp | 18 +++++++++++------- 3 files changed, 16 insertions(+), 10 deletions(-) (limited to 'common') 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) auto &&resource = ApplicationDomainType::createEntity(); resource.setResourceType("sink.dummy"); resource.setAccount(account); - resource.setCapabilities(QByteArrayList() << ResourceCapabilities::Mail::storage << "-folder.rename"); + resource.setCapabilities(QByteArrayList() << ResourceCapabilities::Mail::storage << "-folder.rename" << ResourceCapabilities::Mail::sent); // resource.setProperty("capabilities", QVariant::fromValue(QByteArrayList() << ResourceCapabilities::Mail::storage << ResourceCapabilities::Mail::drafts << "-folder.rename" << ResourceCapabilities::Mail::trash)); return resource; } @@ -287,7 +287,7 @@ SinkResource MaildirResource::create(const QByteArray &account) auto &&resource = ApplicationDomainType::createEntity(); resource.setResourceType("sink.maildir"); resource.setAccount(account); - resource.setCapabilities(QByteArrayList() << ResourceCapabilities::Mail::storage << ResourceCapabilities::Mail::drafts << "-folder.rename" << ResourceCapabilities::Mail::trash); + resource.setCapabilities(QByteArrayList() << ResourceCapabilities::Mail::storage << ResourceCapabilities::Mail::drafts << "-folder.rename" << ResourceCapabilities::Mail::trash << ResourceCapabilities::Mail::sent); return resource; } @@ -305,7 +305,7 @@ SinkResource ImapResource::create(const QByteArray &account) auto &&resource = ApplicationDomainType::createEntity(); resource.setResourceType("sink.imap"); resource.setAccount(account); - resource.setCapabilities(QByteArrayList() << ResourceCapabilities::Mail::storage << ResourceCapabilities::Mail::drafts << ResourceCapabilities::Mail::folderhierarchy << ResourceCapabilities::Mail::trash); + resource.setCapabilities(QByteArrayList() << ResourceCapabilities::Mail::storage << ResourceCapabilities::Mail::drafts << ResourceCapabilities::Mail::folderhierarchy << ResourceCapabilities::Mail::trash << ResourceCapabilities::Mail::sent); return resource; } 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 { namespace Mail { static constexpr const char *storage = "mail.storage"; static constexpr const char *drafts = "mail.drafts"; + static constexpr const char *sent = "mail.sent"; static constexpr const char *trash = "mail.trash"; static constexpr const char *transport = "mail.transport"; static constexpr const char *folderhierarchy = "mail.folderhierarchy"; @@ -376,6 +377,7 @@ namespace Mail { static constexpr const char *inbox = "inbox"; static constexpr const char *drafts = "drafts"; static constexpr const char *trash = "trash"; + static constexpr const char *sent = "sent"; }; }; 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 specialPurposeFolders() //FIXME localize //TODO inbox //TODO use standardized values - hash.insert("drafts", "Drafts"); - hash.insert("trash", "Trash"); - hash.insert("inbox", "Inbox"); + hash.insert(ApplicationDomain::SpecialPurpose::Mail::drafts, "Drafts"); + hash.insert(ApplicationDomain::SpecialPurpose::Mail::trash, "Trash"); + hash.insert(ApplicationDomain::SpecialPurpose::Mail::inbox, "Inbox"); + hash.insert(ApplicationDomain::SpecialPurpose::Mail::sent, "Sent"); return hash; } @@ -73,12 +74,15 @@ QByteArray SpecialPurposeProcessor::ensureFolder(const QByteArray &specialPurpos void SpecialPurposeProcessor::moveToFolder(Sink::ApplicationDomain::ApplicationDomainType &newEntity) { - if (newEntity.getProperty("trash").toBool()) { - newEntity.setProperty("folder", ensureFolder("trash")); + if (newEntity.getProperty(ApplicationDomain::Mail::Trash::name).toBool()) { + newEntity.setProperty("folder", ensureFolder(ApplicationDomain::SpecialPurpose::Mail::trash)); return; } - if (newEntity.getProperty("draft").toBool()) { - newEntity.setProperty("folder", ensureFolder("drafts")); + if (newEntity.getProperty(ApplicationDomain::Mail::Draft::name).toBool()) { + newEntity.setProperty("folder", ensureFolder(ApplicationDomain::SpecialPurpose::Mail::drafts)); + } + if (newEntity.getProperty(ApplicationDomain::Mail::Sent::name).toBool()) { + newEntity.setProperty("folder", ensureFolder(ApplicationDomain::SpecialPurpose::Mail::sent)); } } -- cgit v1.2.3