diff options
author | Christian Mollekopf <chrigi_1@fastmail.fm> | 2016-10-10 15:50:37 +0200 |
---|---|---|
committer | Christian Mollekopf <chrigi_1@fastmail.fm> | 2016-10-10 15:50:37 +0200 |
commit | 9f89215be2612dbf54ad50c42565c310e3f4099c (patch) | |
tree | 2a1f02e48a822dc1fb642a797d22fc51409ab632 /framework/domain | |
parent | 5fa8608e9877eab40336a60ed8ed979aaf3cfbd0 (diff) | |
download | kube-9f89215be2612dbf54ad50c42565c310e3f4099c.tar.gz kube-9f89215be2612dbf54ad50c42565c310e3f4099c.zip |
Query for threads
Diffstat (limited to 'framework/domain')
-rw-r--r-- | framework/domain/maillistmodel.cpp | 18 | ||||
-rw-r--r-- | framework/domain/maillistmodel.h | 5 |
2 files changed, 12 insertions, 11 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>(); |
diff --git a/framework/domain/maillistmodel.h b/framework/domain/maillistmodel.h index 13662a17..a7cb5d84 100644 --- a/framework/domain/maillistmodel.h +++ b/framework/domain/maillistmodel.h | |||
@@ -50,10 +50,11 @@ public: | |||
50 | Draft, | 50 | Draft, |
51 | Id, | 51 | Id, |
52 | MimeMessage, | 52 | MimeMessage, |
53 | DomainObject | 53 | DomainObject, |
54 | ThreadSize | ||
54 | }; | 55 | }; |
55 | 56 | ||
56 | QHash<int, QByteArray> roleNames() const; | 57 | QHash<int, QByteArray> roleNames() const Q_DECL_OVERRIDE; |
57 | 58 | ||
58 | void runQuery(const Sink::Query &query); | 59 | void runQuery(const Sink::Query &query); |
59 | 60 | ||