Warning, file /pim/sink/examples/dummyresource/dummystore.cpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 /* 0002 * Copyright (C) 2015 Christian Mollekopf <chrigi_1@fastmail.fm> 0003 * 0004 * This program is free software; you can redistribute it and/or modify 0005 * it under the terms of the GNU General Public License as published by 0006 * the Free Software Foundation; either version 2 of the License, or 0007 * (at your option) any later version. 0008 * 0009 * This program is distributed in the hope that it will be useful, 0010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 0011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 0012 * GNU General Public License for more details. 0013 * 0014 * You should have received a copy of the GNU General Public License 0015 * along with this program; if not, write to the 0016 * Free Software Foundation, Inc., 0017 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 0018 */ 0019 #include "dummystore.h" 0020 0021 #include <QString> 0022 #include <QDateTime> 0023 #include <QUuid> 0024 0025 static QMap<QString, QVariant> createEvent(int i) 0026 { 0027 QMap<QString, QVariant> event; 0028 event.insert("summary", QString("summary%1").arg(i)); 0029 static const size_t attachmentSize = 1024*2; // 2KB 0030 event.insert("attachment", QByteArray(attachmentSize, 'c')); 0031 return event; 0032 } 0033 0034 QMap<QString, QMap<QString, QVariant> > DummyStore::populateEvents() 0035 { 0036 QMap<QString, QMap<QString, QVariant>> content; 0037 for (int i = 0; i < 2; i++) { 0038 content.insert(QString("key%1").arg(i), createEvent(i)); 0039 } 0040 return content; 0041 } 0042 0043 static QByteArray addMail(QMap <QString, QMap<QString, QVariant> > &content, const QString &subject, const QDateTime &date, const QString &senderName, const QString &senderEmail, bool isUnread, bool isImportant, const QByteArray &parentFolder) 0044 { 0045 static int id = 0; 0046 id++; 0047 const auto uid = QString("key%1").arg(id); 0048 QMap<QString, QVariant> mail; 0049 mail.insert("subject", subject); 0050 mail.insert("date", date); 0051 mail.insert("senderName", senderName); 0052 mail.insert("senderEmail", senderEmail); 0053 mail.insert("unread", isUnread); 0054 mail.insert("important", isImportant); 0055 mail.insert("parentFolder", parentFolder); 0056 content.insert(uid, mail); 0057 return uid.toUtf8(); 0058 } 0059 0060 QMap<QString, QMap<QString, QVariant> > DummyStore::populateMails() 0061 { 0062 QMap<QString, QMap<QString, QVariant>> content; 0063 for (const auto &parentFolder : mFolders.keys()) { 0064 addMail(content, "Hello World! " + QUuid::createUuid().toByteArray(), QDateTime::currentDateTimeUtc(), "John Doe", "doe@example.com", true, false, parentFolder.toUtf8()); 0065 } 0066 return content; 0067 } 0068 0069 static QByteArray addFolder(QMap <QString, QMap<QString, QVariant> > &content, const QString &name, const QByteArray &icon, const QByteArray &parent = QByteArray()) 0070 { 0071 static int id = 0; 0072 id++; 0073 const auto uid = QString("key%1").arg(id); 0074 QMap<QString, QVariant> folder; 0075 folder.insert("name", name); 0076 if (!parent.isEmpty()) { 0077 folder.insert("parent", parent); 0078 } 0079 folder.insert("icon", icon); 0080 content.insert(uid, folder); 0081 return uid.toUtf8(); 0082 } 0083 0084 QMap<QString, QMap<QString, QVariant> > DummyStore::populateFolders() 0085 { 0086 QMap<QString, QMap<QString, QVariant>> content; 0087 addFolder(content, "Inbox", "mail-folder-inbox"); 0088 auto data = addFolder(content, "Data", "folder"); 0089 addFolder(content, "Sent", "mail-folder-sent"); 0090 addFolder(content, "Trash", "user-trash"); 0091 addFolder(content, "Drafts", "document-edit"); 0092 addFolder(content, "Stuff", "folder", data); 0093 auto bulk = addFolder(content, "Bulk", "folder", data); 0094 for (int i = 0; i < 5; i++) { 0095 addFolder(content, QString("Folder %1").arg(i), "folder", bulk); 0096 } 0097 return content; 0098 } 0099 0100 DummyStore::DummyStore() 0101 { 0102 } 0103 0104 void DummyStore::populate() 0105 { 0106 mFolders = populateFolders(); 0107 mMails = populateMails(); 0108 mEvents = populateEvents(); 0109 } 0110 0111 QMap<QString, QMap<QString, QVariant> > &DummyStore::events() 0112 { 0113 return mEvents; 0114 } 0115 0116 QMap<QString, QMap<QString, QVariant> > &DummyStore::mails() 0117 { 0118 return mMails; 0119 } 0120 0121 QMap<QString, QMap<QString, QVariant> > &DummyStore::folders() 0122 { 0123 return mFolders; 0124 }