From f8b7fca3671b6458f1fac8e59769920da1e2aaea Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Mon, 20 Mar 2017 16:14:36 +0100 Subject: Show the account status next to the account name --- framework/accounts/accountsmodel.cpp | 33 +++++++++++++++++++++++++++------ framework/accounts/accountsmodel.h | 4 ++++ 2 files changed, 31 insertions(+), 6 deletions(-) (limited to 'framework/accounts') diff --git a/framework/accounts/accountsmodel.cpp b/framework/accounts/accountsmodel.cpp index ea37784b..f0487f4f 100644 --- a/framework/accounts/accountsmodel.cpp +++ b/framework/accounts/accountsmodel.cpp @@ -19,13 +19,16 @@ #include "accountsmodel.h" #include +using namespace Sink; +using namespace Sink::ApplicationDomain; + AccountsModel::AccountsModel(QObject *parent) : QIdentityProxyModel() { Sink::Query query; - query.setFlags(Sink::Query::LiveQuery); - query.request(); - query.request(); - query.request(); + query.setFlags(Query::LiveQuery); + query.request(); + query.request(); + query.request(); runQuery(query); } @@ -51,7 +54,7 @@ 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(); + auto account = srcIdx.data(Sink::Store::DomainObjectRole).value(); switch (role) { case Name: return account->getName(); @@ -77,6 +80,24 @@ QVariant AccountsModel::data(const QModelIndex &idx, int role) const void AccountsModel::runQuery(const Sink::Query &query) { - mModel = Sink::Store::loadModel(query); + mModel = Sink::Store::loadModel(query); setSourceModel(mModel.data()); } + +void AccountsModel::setAccountId(const QByteArray &accountId) +{ + qWarning() << "Setting account id" << accountId; + //Get all folders of an account + Sink::Query query; + query.filter(accountId); + query.setFlags(Query::LiveQuery); + query.request(); + query.request(); + query.request(); + runQuery(query); +} + +QByteArray AccountsModel::accountId() const +{ + return {}; +} diff --git a/framework/accounts/accountsmodel.h b/framework/accounts/accountsmodel.h index e3c08cd4..3a2dd712 100644 --- a/framework/accounts/accountsmodel.h +++ b/framework/accounts/accountsmodel.h @@ -32,6 +32,7 @@ class AccountsModel : public QIdentityProxyModel { Q_OBJECT + Q_PROPERTY (QByteArray accountId READ accountId WRITE setAccountId) public: AccountsModel(QObject *parent = Q_NULLPTR); ~AccountsModel(); @@ -50,6 +51,9 @@ public: QHash roleNames() const; + void setAccountId(const QByteArray &id); + QByteArray accountId() const; + private: void runQuery(const Sink::Query &query); QSharedPointer mModel; -- cgit v1.2.3