summaryrefslogtreecommitdiffstats
path: root/framework/domain/accountsmodel.cpp
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2016-03-17 20:59:19 +0100
committerChristian Mollekopf <chrigi_1@fastmail.fm>2016-03-17 20:59:19 +0100
commitb0d06e04e4f4a0c8645288d4a31449215ce58770 (patch)
tree7f2a1de572a14274cb4992c48587d56286dcd619 /framework/domain/accountsmodel.cpp
parentdd240d06dc35c50239dec91dcf043f8d4c990953 (diff)
downloadkube-b0d06e04e4f4a0c8645288d4a31449215ce58770.tar.gz
kube-b0d06e04e4f4a0c8645288d4a31449215ce58770.zip
Store accounts in sink
Diffstat (limited to 'framework/domain/accountsmodel.cpp')
-rw-r--r--framework/domain/accountsmodel.cpp29
1 files changed, 14 insertions, 15 deletions
diff --git a/framework/domain/accountsmodel.cpp b/framework/domain/accountsmodel.cpp
index b5eafd53..8a3ab317 100644
--- a/framework/domain/accountsmodel.cpp
+++ b/framework/domain/accountsmodel.cpp
@@ -17,15 +17,14 @@
17 02110-1301, USA. 17 02110-1301, USA.
18*/ 18*/
19#include "accountsmodel.h" 19#include "accountsmodel.h"
20#include <sink/store.h>
20 21
21#include <settings/settings.h> 22AccountsModel::AccountsModel(QObject *parent) : QIdentityProxyModel()
22
23#include <QVariant>
24
25AccountsModel::AccountsModel(QObject *parent) : QAbstractListModel()
26{ 23{
27 Kube::Settings settings("accounts"); 24 Sink::Query query;
28 mAccounts = settings.property("accounts").toStringList(); 25 query.liveQuery = true;
26 query.requestedProperties << "name" << "icon";
27 runQuery(query);
29} 28}
30 29
31AccountsModel::~AccountsModel() 30AccountsModel::~AccountsModel()
@@ -46,20 +45,20 @@ QHash< int, QByteArray > AccountsModel::roleNames() const
46 45
47QVariant AccountsModel::data(const QModelIndex &idx, int role) const 46QVariant AccountsModel::data(const QModelIndex &idx, int role) const
48{ 47{
49 const auto identifier = mAccounts.at(idx.row()); 48 auto srcIdx = mapToSource(idx);
50 Kube::Account accountSettings(identifier.toLatin1());
51 switch (role) { 49 switch (role) {
52 case Name: 50 case Name:
53 return accountSettings.property("accountName").toString(); 51 return srcIdx.sibling(srcIdx.row(), 0).data(Qt::DisplayRole).toString();
54 case Icon: 52 case Icon:
55 return accountSettings.property("icon").toString(); 53 return srcIdx.sibling(srcIdx.row(), 1).data(Qt::DisplayRole).toString();
56 case AccountId: 54 case AccountId:
57 return identifier; 55 return srcIdx.data(Sink::Store::DomainObjectBaseRole).value<Sink::ApplicationDomain::ApplicationDomainType::Ptr>()->identifier();
58 } 56 }
59 return QVariant(); 57 return QIdentityProxyModel::data(idx, role);
60} 58}
61 59
62int AccountsModel::rowCount(const QModelIndex &idx) const 60void AccountsModel::runQuery(const Sink::Query &query)
63{ 61{
64 return mAccounts.size(); 62 mModel = Sink::Store::loadModel<Sink::ApplicationDomain::SinkAccount>(query);
63 setSourceModel(mModel.data());
65} 64}