From 2b0278a02b8bb5de9da79de395942c55449c1c59 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Sun, 26 Mar 2017 22:43:15 +0200 Subject: Update email status --- framework/domain/maillistmodel.cpp | 12 +++++++++++- framework/domain/maillistmodel.h | 10 +++++++++- 2 files changed, 20 insertions(+), 2 deletions(-) (limited to 'framework') diff --git a/framework/domain/maillistmodel.cpp b/framework/domain/maillistmodel.cpp index bdf7b9f5..278dca22 100644 --- a/framework/domain/maillistmodel.cpp +++ b/framework/domain/maillistmodel.cpp @@ -67,6 +67,7 @@ QHash< int, QByteArray > MailListModel::roleNames() const roles[ThreadSize] = "threadSize"; roles[Mail] = "mail"; roles[Incomplete] = "incomplete"; + roles[Status] = "status"; return roles; } @@ -137,6 +138,15 @@ QVariant MailListModel::data(const QModelIndex &idx, int role) const return QVariant::fromValue(mail); case Incomplete: return !mail->getFullPayloadAvailable(); + case Status: + const auto status = srcIdx.data(Sink::Store::StatusRole).toInt(); + if (status == Sink::ApplicationDomain::SyncStatus::SyncInProgress) { + return InProgressStatus; + } + if (status == Sink::ApplicationDomain::SyncStatus::SyncError) { + return ErrorStatus; + } + return NoStatus; } return QSortFilterProxyModel::data(idx, role); } @@ -208,7 +218,7 @@ void MailListModel::setMail(const QVariant &variant) } mCurrentQueryItem = mail->identifier(); Sink::Query query = Sink::StandardQueries::completeThread(*mail); - query.setFlags(Sink::Query::LiveQuery); + query.setFlags(Sink::Query::LiveQuery | Sink::Query::UpdateStatus); query.request(); query.request(); query.request(); diff --git a/framework/domain/maillistmodel.h b/framework/domain/maillistmodel.h index 8f61fce6..8e22da60 100644 --- a/framework/domain/maillistmodel.h +++ b/framework/domain/maillistmodel.h @@ -34,6 +34,13 @@ class MailListModel : public QSortFilterProxyModel Q_PROPERTY (QString filter READ filter WRITE setFilter) public: + enum Status { + NoStatus, + InProgressStatus, + ErrorStatus + }; + Q_ENUMS(Status) + MailListModel(QObject *parent = Q_NULLPTR); ~MailListModel(); @@ -59,7 +66,8 @@ public: DomainObject, ThreadSize, Mail, - Incomplete + Incomplete, + Status }; QHash roleNames() const Q_DECL_OVERRIDE; -- cgit v1.2.3