diff --git a/programs/light_client/ClientDataModel.cpp b/programs/light_client/ClientDataModel.cpp index 4338cebf..4c2a0152 100644 --- a/programs/light_client/ClientDataModel.cpp +++ b/programs/light_client/ClientDataModel.cpp @@ -1,7 +1,7 @@ #include "ClientDataModel.hpp" -Account* ClientDataModel::getAccount(quint64 id) const +Account* ChainDataModel::getAccount(quint64 id) const { auto acct = new Account; acct->setProperty("id", id); @@ -9,7 +9,7 @@ Account* ClientDataModel::getAccount(quint64 id) const return acct; } -Account*ClientDataModel::getAccount(QString name) const +Account*ChainDataModel::getAccount(QString name) const { auto acct = new Account; acct->setProperty("id", 800); diff --git a/programs/light_client/ClientDataModel.hpp b/programs/light_client/ClientDataModel.hpp index 1986293f..27ee1610 100644 --- a/programs/light_client/ClientDataModel.hpp +++ b/programs/light_client/ClientDataModel.hpp @@ -45,10 +45,36 @@ public: QQmlListProperty balances(); }; -class ClientDataModel : public QObject { +class ChainDataModel : public QObject { Q_OBJECT public: Q_INVOKABLE Account* getAccount(quint64 id)const; Q_INVOKABLE Account* getAccount(QString name)const; }; + +class GrapheneApplication : public QObject { + Q_OBJECT + + Q_PROPERTY(ChainDataModel* model READ model CONSTANT) + Q_PROPERTY(bool isConnected READ isConnected NOTIFY isConnectedChanged) + + ChainDataModel* m_model; + bool m_isConnected; + +public: + ChainDataModel* model() const + { + return m_model; + } + + Q_INVOKABLE void initialize(QString dataDirectory, QString apiUrl); + + bool isConnected() const + { + return m_isConnected; + } + +signals: + void isConnectedChanged(bool isConnected); +}; diff --git a/programs/light_client/main.cpp b/programs/light_client/main.cpp index 57ee4b1f..12888e2c 100644 --- a/programs/light_client/main.cpp +++ b/programs/light_client/main.cpp @@ -11,7 +11,8 @@ int main(int argc, char *argv[]) qmlRegisterType("Graphene.Client", 0, 1, "Asset"); qmlRegisterType("Graphene.Client", 0, 1, "Balance"); qmlRegisterType("Graphene.Client", 0, 1, "Account"); - qmlRegisterType("Graphene.Client", 0, 1, "DataModel"); + qmlRegisterType("Graphene.Client", 0, 1, "DataModel"); + qmlRegisterType("Graphene.Client", 0, 1, "GrapheneApplication"); QQmlApplicationEngine engine; engine.load(QUrl(QStringLiteral("qrc:/main.qml"))); diff --git a/programs/light_client/qml/main.qml b/programs/light_client/qml/main.qml index 7ea0739c..75b21f15 100644 --- a/programs/light_client/qml/main.qml +++ b/programs/light_client/qml/main.qml @@ -27,8 +27,8 @@ ApplicationWindow { } } - DataModel { - id: model + GrapheneApplication { + id: app } Settings { id: appSettings