File indexing completed on 2024-05-12 05:11:12
0001 /* 0002 SPDX-FileCopyrightText: 2009 Constantin Berzan <exit3219@gmail.com> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include "specialmailcollectionsrequestjob.h" 0008 0009 #include <KLocalizedString> 0010 #include <QStandardPaths> 0011 0012 using namespace Akonadi; 0013 0014 class Akonadi::SpecialMailCollectionsRequestJobPrivate 0015 { 0016 }; 0017 0018 static inline QByteArray enumToType(SpecialMailCollections::Type type) 0019 { 0020 switch (type) { 0021 case SpecialMailCollections::Root: 0022 return "local-mail"; 0023 case SpecialMailCollections::Inbox: 0024 return "inbox"; 0025 case SpecialMailCollections::Outbox: 0026 return "outbox"; 0027 case SpecialMailCollections::SentMail: 0028 return "sent-mail"; 0029 case SpecialMailCollections::Trash: 0030 return "trash"; 0031 case SpecialMailCollections::Drafts: 0032 return "drafts"; 0033 case SpecialMailCollections::Templates: 0034 return "templates"; 0035 case SpecialMailCollections::LastType: // fallthrough 0036 default: 0037 return {}; 0038 } 0039 } 0040 0041 SpecialMailCollectionsRequestJob::SpecialMailCollectionsRequestJob(QObject *parent) 0042 : SpecialCollectionsRequestJob(SpecialMailCollections::self(), parent) 0043 , d(nullptr) 0044 { 0045 static QMap<QByteArray, QString> displayNameMap; 0046 displayNameMap.insert("local-mail", i18nc("local mail folder", "Local Folders")); 0047 displayNameMap.insert("inbox", /*i18nc( "local mail folder",*/ QStringLiteral("inbox")); 0048 displayNameMap.insert("outbox", /*i18nc( "local mail folder",*/ QStringLiteral("outbox")); 0049 displayNameMap.insert("sent-mail", /*i18nc( "local mail folder",*/ QStringLiteral("sent-mail")); 0050 displayNameMap.insert("trash", /*i18nc( "local mail folder", */ QStringLiteral("trash")); 0051 displayNameMap.insert("drafts", /*i18nc( "local mail folder", */ QStringLiteral("drafts")); 0052 displayNameMap.insert("templates", /*i18nc( "local mail folder", */ QStringLiteral("templates")); 0053 0054 static QMap<QByteArray, QString> iconNameMap; 0055 iconNameMap.insert("local-mail", QStringLiteral("folder")); 0056 iconNameMap.insert("inbox", QStringLiteral("mail-folder-inbox")); 0057 iconNameMap.insert("outbox", QStringLiteral("mail-folder-outbox")); 0058 iconNameMap.insert("sent-mail", QStringLiteral("mail-folder-sent")); 0059 iconNameMap.insert("trash", QStringLiteral("user-trash")); 0060 iconNameMap.insert("drafts", QStringLiteral("document-properties")); 0061 iconNameMap.insert("templates", QStringLiteral("document-new")); 0062 0063 QVariantMap options; 0064 options.insert(QStringLiteral("Name"), displayNameMap.value("local-mail")); 0065 options.insert(QStringLiteral("TopLevelIsContainer"), true); 0066 options.insert(QStringLiteral("Path"), 0067 QString(QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) + QLatin1Char('/') + QLatin1StringView("local-mail"))); 0068 0069 setDefaultResourceType(QStringLiteral("akonadi_maildir_resource")); 0070 setDefaultResourceOptions(options); 0071 0072 setTypes(displayNameMap.keys()); 0073 setNameForTypeMap(displayNameMap); 0074 setIconForTypeMap(iconNameMap); 0075 } 0076 0077 SpecialMailCollectionsRequestJob::~SpecialMailCollectionsRequestJob() = default; 0078 0079 void SpecialMailCollectionsRequestJob::requestDefaultCollection(SpecialMailCollections::Type type) 0080 { 0081 SpecialCollectionsRequestJob::requestDefaultCollection(enumToType(type)); 0082 } 0083 0084 void SpecialMailCollectionsRequestJob::requestCollection(SpecialMailCollections::Type type, const AgentInstance &instance) 0085 { 0086 SpecialCollectionsRequestJob::requestCollection(enumToType(type), instance); 0087 } 0088 0089 #include "moc_specialmailcollectionsrequestjob.cpp"