summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--components/package/contents/ui/MailListView.qml7
-rw-r--r--framework/domain/maillistmodel.cpp18
-rw-r--r--framework/domain/maillistmodel.h5
3 files changed, 19 insertions, 11 deletions
diff --git a/components/package/contents/ui/MailListView.qml b/components/package/contents/ui/MailListView.qml
index ff71e43e..5f7fd83f 100644
--- a/components/package/contents/ui/MailListView.qml
+++ b/components/package/contents/ui/MailListView.qml
@@ -127,6 +127,13 @@ Controls.ScrollView {
127 color: Kirigami.Theme.textColor 127 color: Kirigami.Theme.textColor
128 } 128 }
129 } 129 }
130 Text {
131 text: model.threadSize
132
133 renderType: Text.NativeRendering
134 font.weight: Font.Light
135 color: Kirigami.Theme.textColor
136 }
130 } 137 }
131 } 138 }
132 } 139 }
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>();
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