From 9f89215be2612dbf54ad50c42565c310e3f4099c Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Mon, 10 Oct 2016 15:50:37 +0200 Subject: Query for threads --- components/package/contents/ui/MailListView.qml | 7 +++++++ framework/domain/maillistmodel.cpp | 18 +++++++++--------- framework/domain/maillistmodel.h | 5 +++-- 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 { color: Kirigami.Theme.textColor } } + Text { + text: model.threadSize + + renderType: Text.NativeRendering + font.weight: Font.Light + color: Kirigami.Theme.textColor + } } } } 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 @@ #include #include +#include MailListModel::MailListModel(QObject *parent) : QSortFilterProxyModel() @@ -50,6 +51,7 @@ QHash< int, QByteArray > MailListModel::roleNames() const roles[Id] = "id"; roles[MimeMessage] = "mimeMessage"; roles[DomainObject] = "domainObject"; + roles[ThreadSize] = "threadSize"; return roles; } @@ -68,18 +70,19 @@ QVariant MailListModel::data(const QModelIndex &idx, int role) const case Date: return mail->getDate(); case Unread: - return mail->getUnread(); + return mail->getProperty("unreadCollected").toList().contains(true); case Important: - return mail->getImportant(); + return mail->getProperty("importantCollected").toList().contains(true); case Draft: return mail->getDraft(); case Id: return mail->identifier(); case DomainObject: return QVariant::fromValue(mail); - case MimeMessage: { + case MimeMessage: return mail->getMimeMessage(); - } + case ThreadSize: + return mail->getProperty("count").toInt(); } return QSortFilterProxyModel::data(idx, role); } @@ -105,10 +108,8 @@ void MailListModel::setParentFolder(const QVariant &parentFolder) qWarning() << "No folder: " << parentFolder; return; } - Sink::Query query; + Sink::Query query = Sink::StandardQueries::threadLeaders(*folder); query.liveQuery = true; - query.resourceFilter(folder->resourceInstanceIdentifier()); - query.sort(); query.limit = 100; query.request(); query.request(); @@ -118,7 +119,6 @@ void MailListModel::setParentFolder(const QVariant &parentFolder) query.request(); query.request(); query.request(); - query.filter(*folder); qWarning() << "Running folder query: " << folder->resourceInstanceIdentifier() << folder->identifier(); runQuery(query); } @@ -136,7 +136,7 @@ void MailListModel::setMail(const QVariant &variant) qWarning() << "No mail: " << mail; return; } - Sink::Query query(*mail); + Sink::Query query = Sink::StandardQueries::completeThread(*mail); query.liveQuery = false; query.request(); query.request(); 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: Draft, Id, MimeMessage, - DomainObject + DomainObject, + ThreadSize }; - QHash roleNames() const; + QHash roleNames() const Q_DECL_OVERRIDE; void runQuery(const Sink::Query &query); -- cgit v1.2.3