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.cpp18
1 files changed, 9 insertions, 9 deletions
diff --git a/framework/domain/maillistmodel.cpp b/framework/domain/maillistmodel.cpp
index 9afb6408..746f3523 100644
--- a/framework/domain/maillistmodel.cpp
+++ b/framework/domain/maillistmodel.cpp
@@ -23,6 +23,7 @@
23#include <QFile> 23#include <QFile>
24#include <QDateTime> 24#include <QDateTime>
25 25
26#include <sink/standardqueries.h>
26 27
27MailListModel::MailListModel(QObject *parent) 28MailListModel::MailListModel(QObject *parent)
28 : QSortFilterProxyModel() 29 : QSortFilterProxyModel()
@@ -50,6 +51,7 @@ QHash< int, QByteArray > MailListModel::roleNames() const
50 roles[Id] = "id"; 51 roles[Id] = "id";
51 roles[MimeMessage] = "mimeMessage"; 52 roles[MimeMessage] = "mimeMessage";
52 roles[DomainObject] = "domainObject"; 53 roles[DomainObject] = "domainObject";
54 roles[ThreadSize] = "threadSize";
53 55
54 return roles; 56 return roles;
55} 57}
@@ -68,18 +70,19 @@ QVariant MailListModel::data(const QModelIndex &idx, int role) const
68 case Date: 70 case Date:
69 return mail->getDate(); 71 return mail->getDate();
70 case Unread: 72 case Unread:
71 return mail->getUnread(); 73 return mail->getProperty("unreadCollected").toList().contains(true);
72 case Important: 74 case Important:
73 return mail->getImportant(); 75 return mail->getProperty("importantCollected").toList().contains(true);
74 case Draft: 76 case Draft:
75 return mail->getDraft(); 77 return mail->getDraft();
76 case Id: 78 case Id:
77 return mail->identifier(); 79 return mail->identifier();
78 case DomainObject: 80 case DomainObject:
79 return QVariant::fromValue(mail); 81 return QVariant::fromValue(mail);
80 case MimeMessage: { 82 case MimeMessage:
81 return mail->getMimeMessage(); 83 return mail->getMimeMessage();
82 } 84 case ThreadSize:
85 return mail->getProperty("count").toInt();
83 } 86 }
84 return QSortFilterProxyModel::data(idx, role); 87 return QSortFilterProxyModel::data(idx, role);
85} 88}
@@ -105,10 +108,8 @@ void MailListModel::setParentFolder(const QVariant &parentFolder)
105 qWarning() << "No folder: " << parentFolder; 108 qWarning() << "No folder: " << parentFolder;
106 return; 109 return;
107 } 110 }
108 Sink::Query query; 111 Sink::Query query = Sink::StandardQueries::threadLeaders(*folder);
109 query.liveQuery = true; 112 query.liveQuery = true;
110 query.resourceFilter(folder->resourceInstanceIdentifier());
111 query.sort<Mail::Date>();
112 query.limit = 100; 113 query.limit = 100;
113 query.request<Mail::Subject>(); 114 query.request<Mail::Subject>();
114 query.request<Mail::Sender>(); 115 query.request<Mail::Sender>();
@@ -118,7 +119,6 @@ void MailListModel::setParentFolder(const QVariant &parentFolder)
118 query.request<Mail::Important>(); 119 query.request<Mail::Important>();
119 query.request<Mail::Draft>(); 120 query.request<Mail::Draft>();
120 query.request<Mail::Folder>(); 121 query.request<Mail::Folder>();
121 query.filter<Mail::Folder>(*folder);
122 qWarning() << "Running folder query: " << folder->resourceInstanceIdentifier() << folder->identifier(); 122 qWarning() << "Running folder query: " << folder->resourceInstanceIdentifier() << folder->identifier();
123 runQuery(query); 123 runQuery(query);
124} 124}
@@ -136,7 +136,7 @@ void MailListModel::setMail(const QVariant &variant)
136 qWarning() << "No mail: " << mail; 136 qWarning() << "No mail: " << mail;
137 return; 137 return;
138 } 138 }
139 Sink::Query query(*mail); 139 Sink::Query query = Sink::StandardQueries::completeThread(*mail);
140 query.liveQuery = false; 140 query.liveQuery = false;
141 query.request<Mail::Subject>(); 141 query.request<Mail::Subject>();
142 query.request<Mail::Sender>(); 142 query.request<Mail::Sender>();