From ff132591078b8cab1008ec086cc10a5396f238f3 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Mon, 11 Jul 2016 11:52:43 +0200 Subject: Show the account status --- framework/domain/accountsmodel.cpp | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) (limited to 'framework/domain/accountsmodel.cpp') diff --git a/framework/domain/accountsmodel.cpp b/framework/domain/accountsmodel.cpp index 8a3ab317..1f034283 100644 --- a/framework/domain/accountsmodel.cpp +++ b/framework/domain/accountsmodel.cpp @@ -23,7 +23,9 @@ AccountsModel::AccountsModel(QObject *parent) : QIdentityProxyModel() { Sink::Query query; query.liveQuery = true; - query.requestedProperties << "name" << "icon"; + query.request(); + query.request(); + query.request(); runQuery(query); } @@ -39,6 +41,9 @@ QHash< int, QByteArray > AccountsModel::roleNames() const roles[Name] = "name"; roles[Icon] = "icon"; roles[AccountId] = "accountId"; + roles[Status] = "status"; + roles[StatusIcon] = "statusIcon"; + roles[ShowStatus] = "showStatus"; return roles; } @@ -46,13 +51,26 @@ QHash< int, QByteArray > AccountsModel::roleNames() const QVariant AccountsModel::data(const QModelIndex &idx, int role) const { auto srcIdx = mapToSource(idx); + auto account = srcIdx.data(Sink::Store::DomainObjectRole).value(); switch (role) { case Name: - return srcIdx.sibling(srcIdx.row(), 0).data(Qt::DisplayRole).toString(); + return account->getName(); case Icon: - return srcIdx.sibling(srcIdx.row(), 1).data(Qt::DisplayRole).toString(); + return account->getIcon(); case AccountId: - return srcIdx.data(Sink::Store::DomainObjectBaseRole).value()->identifier(); + return account->identifier(); + case Status: + return account->getStatus(); + case StatusIcon: + if (account->getStatus() == Sink::ApplicationDomain::ErrorStatus) { + return "emblem-error"; + } else if (account->getStatus() == Sink::ApplicationDomain::BusyStatus) { + return "view-refresh"; + } else if (account->getStatus() == Sink::ApplicationDomain::ConnectedStatus) { + return "checkmark"; + } + case ShowStatus: + return (account->getStatus() != Sink::ApplicationDomain::OfflineStatus); } return QIdentityProxyModel::data(idx, role); } -- cgit v1.2.3