summaryrefslogtreecommitdiffstats
path: root/framework/domain/maillistmodel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'framework/domain/maillistmodel.cpp')
-rw-r--r--framework/domain/maillistmodel.cpp32
1 files changed, 22 insertions, 10 deletions
diff --git a/framework/domain/maillistmodel.cpp b/framework/domain/maillistmodel.cpp
index eb282533..cbf39a86 100644
--- a/framework/domain/maillistmodel.cpp
+++ b/framework/domain/maillistmodel.cpp
@@ -83,8 +83,8 @@ QVariant MailListModel::data(const QModelIndex &idx, int role) const
83 83
84bool MailListModel::lessThan(const QModelIndex &left, const QModelIndex &right) const 84bool MailListModel::lessThan(const QModelIndex &left, const QModelIndex &right) const
85{ 85{
86 const QVariant leftData = left.sibling(left.row(), 3).data(Qt::DisplayRole); 86 const QVariant leftData = left.sibling(left.row(), Date).data(Qt::DisplayRole);
87 const QVariant rightData = right.sibling(right.row(), 3).data(Qt::DisplayRole); 87 const QVariant rightData = right.sibling(right.row(), Date).data(Qt::DisplayRole);
88 return leftData.toDateTime() < rightData.toDateTime(); 88 return leftData.toDateTime() < rightData.toDateTime();
89} 89}
90 90
@@ -96,18 +96,25 @@ void MailListModel::runQuery(const Sink::Query &query)
96 96
97void MailListModel::setParentFolder(const QVariant &parentFolder) 97void MailListModel::setParentFolder(const QVariant &parentFolder)
98{ 98{
99 auto folder = parentFolder.value<Sink::ApplicationDomain::Folder::Ptr>(); 99 using namespace Sink::ApplicationDomain;
100 auto folder = parentFolder.value<Folder::Ptr>();
100 if (!folder) { 101 if (!folder) {
101 qWarning() << "No folder: " << parentFolder; 102 qWarning() << "No folder: " << parentFolder;
102 return; 103 return;
103 } 104 }
104 Sink::Query query; 105 Sink::Query query;
105 query.liveQuery = true; 106 query.liveQuery = true;
106 query.requestedProperties << "subject" << "sender" << "senderName" << "date" << "unread" << "important" << "folder";
107 query.resources << folder->resourceInstanceIdentifier(); 107 query.resources << folder->resourceInstanceIdentifier();
108 query.sortProperty = "date"; 108 query.sort<Mail::Date>();
109 query.limit = 100; 109 query.limit = 100;
110 query += Sink::Query::PropertyFilter("folder", *folder); 110 query.request<Mail::Subject>();
111 query.request<Mail::Sender>();
112 query.request<Mail::SenderName>();
113 query.request<Mail::Date>();
114 query.request<Mail::Unread>();
115 query.request<Mail::Important>();
116 query.request<Mail::Folder>();
117 query.filter<Mail::Folder>(*folder);
111 qWarning() << "Running folder query: " << folder->resourceInstanceIdentifier() << folder->identifier(); 118 qWarning() << "Running folder query: " << folder->resourceInstanceIdentifier() << folder->identifier();
112 runQuery(query); 119 runQuery(query);
113} 120}
@@ -119,16 +126,21 @@ QVariant MailListModel::parentFolder() const
119 126
120void MailListModel::setMail(const QVariant &variant) 127void MailListModel::setMail(const QVariant &variant)
121{ 128{
129 using namespace Sink::ApplicationDomain;
122 auto mail = variant.value<Sink::ApplicationDomain::Mail::Ptr>(); 130 auto mail = variant.value<Sink::ApplicationDomain::Mail::Ptr>();
123 if (!mail) { 131 if (!mail) {
124 qWarning() << "No mail: " << mail; 132 qWarning() << "No mail: " << mail;
125 return; 133 return;
126 } 134 }
127 Sink::Query query; 135 Sink::Query query(*mail);
128 query.liveQuery = false; 136 query.liveQuery = false;
129 query.requestedProperties << "subject" << "sender" << "senderName" << "date" << "unread" << "important" << "mimeMessage"; 137 query.request<Mail::Subject>();
130 query.ids << mail->identifier(); 138 query.request<Mail::Sender>();
131 query.resources << mail->resourceInstanceIdentifier(); 139 query.request<Mail::SenderName>();
140 query.request<Mail::Date>();
141 query.request<Mail::Unread>();
142 query.request<Mail::Important>();
143 query.request<Mail::MimeMessage>();
132 qWarning() << "Running mail query: " << mail->resourceInstanceIdentifier() << mail->identifier(); 144 qWarning() << "Running mail query: " << mail->resourceInstanceIdentifier() << mail->identifier();
133 runQuery(query); 145 runQuery(query);
134} 146}