diff options
Diffstat (limited to 'framework/domain/maillistmodel.cpp')
-rw-r--r-- | framework/domain/maillistmodel.cpp | 18 |
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 | ||
27 | MailListModel::MailListModel(QObject *parent) | 28 | MailListModel::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>(); |