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 }