diff --git a/programs/light_client/ClientDataModel.cpp b/programs/light_client/ClientDataModel.cpp index f76267d2..4764a2c7 100644 --- a/programs/light_client/ClientDataModel.cpp +++ b/programs/light_client/ClientDataModel.cpp @@ -156,6 +156,7 @@ void GrapheneApplication::start( QString apiurl, QString user, QString pass ) m_client = std::make_shared(); ilog( "connecting...${s}", ("s",apiurl.toStdString()) ); auto con = m_client->connect( apiurl.toStdString() ); + m_connectionClosed = con->closed.connect([this]{queueExecute([this]{setIsConnected(false);});}); auto apic = std::make_shared(*con); auto remote_api = apic->get_remote_api< login_api >(1); auto db_api = apic->get_remote_api< database_api >(0); diff --git a/programs/light_client/ClientDataModel.hpp b/programs/light_client/ClientDataModel.hpp index d7533ba4..32344ba7 100644 --- a/programs/light_client/ClientDataModel.hpp +++ b/programs/light_client/ClientDataModel.hpp @@ -129,6 +129,8 @@ class GrapheneApplication : public QObject { ChainDataModel* m_model = nullptr; bool m_isConnected = false; + boost::signals2::scoped_connection m_connectionClosed; + std::shared_ptr m_client; fc::future m_done; diff --git a/programs/light_client/qml/main.qml b/programs/light_client/qml/main.qml index 196db8cb..e9c0a57f 100644 --- a/programs/light_client/qml/main.qml +++ b/programs/light_client/qml/main.qml @@ -14,10 +14,6 @@ ApplicationWindow { height: 480 title: qsTr("Hello World") - Component.onCompleted: { - app.start("ws://localhost:8090", "user", "pass") - } - menuBar: MenuBar { Menu { title: qsTr("File") @@ -32,9 +28,22 @@ ApplicationWindow { } } } + statusBar: StatusBar { + Label { + anchors.right: parent.right + text: app.isConnected? qsTr("Connected") : qsTr("Disconnected") + } + } GrapheneApplication { id: app + } + Timer { + running: !app.isConnected + interval: 5000 + repeat: true + onTriggered: app.start("ws://localhost:8090", "user", "pass") + triggeredOnStart: true } Settings { id: appSettings @@ -47,6 +56,8 @@ ApplicationWindow { Column { anchors.centerIn: parent + enabled: app.isConnected + Button { text: "Transfer" onClicked: formBox.showForm(Qt.createComponent("TransferForm.qml"), {},