summaryrefslogtreecommitdiffstats
path: root/framework/mail/maillistmodel.cpp
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2016-01-03 20:31:10 +0100
committerChristian Mollekopf <chrigi_1@fastmail.fm>2016-01-03 20:31:10 +0100
commitdd09ca9ef4bb9780b953d6dd2999dbefe50bd1ff (patch)
treedfcef3671c7f36d762f74b4226477fe6978688f2 /framework/mail/maillistmodel.cpp
parentdea41f0345188d776522e5b91ba25d25c418e581 (diff)
downloadkube-dd09ca9ef4bb9780b953d6dd2999dbefe50bd1ff.tar.gz
kube-dd09ca9ef4bb9780b953d6dd2999dbefe50bd1ff.zip
Instead of using controllers, directly use the models
...and connect components via properties
Diffstat (limited to 'framework/mail/maillistmodel.cpp')
-rw-r--r--framework/mail/maillistmodel.cpp48
1 files changed, 48 insertions, 0 deletions
diff --git a/framework/mail/maillistmodel.cpp b/framework/mail/maillistmodel.cpp
index 80fb661f..e6a9c218 100644
--- a/framework/mail/maillistmodel.cpp
+++ b/framework/mail/maillistmodel.cpp
@@ -25,6 +25,7 @@ QHash< int, QByteArray > MailListModel::roleNames() const
25 roles[Important] = "important"; 25 roles[Important] = "important";
26 roles[Id] = "id"; 26 roles[Id] = "id";
27 roles[MimeMessage] = "mimeMessage"; 27 roles[MimeMessage] = "mimeMessage";
28 roles[DomainObject] = "domainObject";
28 29
29 return roles; 30 return roles;
30} 31}
@@ -70,3 +71,50 @@ void MailListModel::runQuery(const Akonadi2::Query &query)
70 setSourceModel(m_model.data()); 71 setSourceModel(m_model.data());
71} 72}
72 73
74void MailListModel::setParentFolder(const QVariant &parentFolder)
75{
76 auto folder = parentFolder.value<Akonadi2::ApplicationDomain::Folder::Ptr>();
77 if (!folder) {
78 qWarning() << "No folder: " << parentFolder;
79 return;
80 }
81 Akonadi2::Query query;
82 query.syncOnDemand = false;
83 query.processAll = false;
84 query.liveQuery = true;
85 query.requestedProperties << "subject" << "sender" << "senderName" << "date" << "unread" << "important" << "folder";
86 query.propertyFilter.insert("folder", folder->identifier());
87 query.resources << folder->resourceInstanceIdentifier();
88 qWarning() << "Running folder query: " << folder->resourceInstanceIdentifier() << folder->identifier();
89 runQuery(query);
90}
91
92QVariant MailListModel::parentFolder() const
93{
94 return QVariant();
95}
96
97void MailListModel::setMail(const QVariant &variant)
98{
99 auto mail = variant.value<Akonadi2::ApplicationDomain::Mail::Ptr>();
100 if (!mail) {
101 qWarning() << "No mail: " << mail;
102 return;
103 }
104 Akonadi2::Query query;
105 query.syncOnDemand = false;
106 query.processAll = false;
107 query.liveQuery = false;
108 query.requestedProperties << "subject" << "sender" << "senderName" << "date" << "unread" << "important" << "mimeMessage";
109 query.ids << mail->identifier();
110 query.resources << mail->resourceInstanceIdentifier();
111 qWarning() << "Running mail query: " << mail->resourceInstanceIdentifier() << mail->identifier();
112 runQuery(query);
113}
114
115QVariant MailListModel::mail() const
116{
117 return QVariant();
118}
119
120