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"