diff --git a/CellFrameDashboardGUI/DapCommandController.cpp b/CellFrameDashboardGUI/DapCommandController.cpp index 7a3cc5b53de45d920665fec3267f6817a65b5228..a6f5629a5d3d37d75481175318508cdc5e96b916 100755 --- a/CellFrameDashboardGUI/DapCommandController.cpp +++ b/CellFrameDashboardGUI/DapCommandController.cpp @@ -63,6 +63,11 @@ void DapCommandController::setNewHistory(const QVariant& aData) emit sendHistory(aData); } +void DapCommandController::changeCurrentNetwork(const QString& aNetwork) +{ + m_DAPRpcSocket->invokeRemoteMethod("RPCServer.changeCurrentNetwork", aNetwork); +} + void DapCommandController::processChangedLog() { // QStringList tempLogModel; @@ -186,12 +191,18 @@ void DapCommandController::processExecuteCommand() void DapCommandController::processGetHistory() { - qDebug() << "processGetHistory()"; DapRpcServiceReply *reply = static_cast<DapRpcServiceReply *>(sender()); QVariant result = reply->response().result().toArray().toVariantList(); emit sendHistory(result); } +void DapCommandController::processGetNetworkList() +{ + DapRpcServiceReply *reply = static_cast<DapRpcServiceReply *>(sender()); + QStringList result = reply->response().result().toVariant().toStringList(); + emit sendNetworkList(result); +} + /// Show or hide GUI client by clicking on the tray icon. /// @param aIsActivated Accepts true - when requesting to /// display a client, falso - when requesting to hide a client. @@ -245,6 +256,12 @@ void DapCommandController::getNodeNetwork() connect(reply, SIGNAL(finished()), this, SLOT(processGetNodeNetwork())); } +void DapCommandController::getNetworkList() +{ + DapRpcServiceReply *reply = m_DAPRpcSocket->invokeRemoteMethod("RPCServer.getNetworkList"); + connect(reply, SIGNAL(finished()), this, SLOT(processGetNetworkList())); +} + void DapCommandController::setNodeStatus(const bool aIsOnline) { /*DapRpcServiceReply *reply =*/ m_DAPRpcSocket->invokeRemoteMethod("RPCServer.setNodeStatus", aIsOnline); diff --git a/CellFrameDashboardGUI/DapCommandController.h b/CellFrameDashboardGUI/DapCommandController.h index 78152aba32eeedf940eb598e22dec277ae26d01c..605f85ff3e073607df8a6157cc156cf62b633ab6 100755 --- a/CellFrameDashboardGUI/DapCommandController.h +++ b/CellFrameDashboardGUI/DapCommandController.h @@ -49,6 +49,8 @@ signals: /// Signal for sending new transaction history void sendHistory(const QVariant& aData); + void sendNetworkList(const QStringList& aList); + public: /// Overloaded constructor. /// @param apIODevice Data transfer device. @@ -78,6 +80,8 @@ private slots: void processGetHistory(); + void processGetNetworkList(); + public slots: /// Show or hide GUI client by clicking on the tray icon. /// @param aIsActivated Accepts true - when requesting to @@ -98,6 +102,8 @@ public slots: void getNodeNetwork(); + void getNetworkList(); + void setNodeStatus(const bool aIsOnline); void executeCommand(const QString& command); @@ -110,6 +116,8 @@ public slots: void getHistory(); /// Send to model new history void setNewHistory(const QVariant& aData); + + void changeCurrentNetwork(const QString& aNetwork); }; #endif // COMMANDCONTROLLER_H diff --git a/CellFrameDashboardGUI/DapServiceController.cpp b/CellFrameDashboardGUI/DapServiceController.cpp index 3b8f210afcb6fa1dfc3e9db0a74c6d9c234cd110..3b60c7bbeac5ede1f271a3833d7de3235df67e2c 100755 --- a/CellFrameDashboardGUI/DapServiceController.cpp +++ b/CellFrameDashboardGUI/DapServiceController.cpp @@ -59,6 +59,9 @@ void DapServiceController::init(DapServiceClient *apDapServiceClient) connect(m_pDapCommandController, SIGNAL(sendHistory(QVariant)), this, SLOT(processGetHistory(QVariant))); connect(m_pDapCommandController, &DapCommandController::sendHistory, &DapScreenHistoryModel::getInstance(), &DapScreenHistoryModel::receiveNewData); + + connect(m_pDapCommandController, &DapCommandController::sendNetworkList, &DapSettingsNetworkModel::getInstance(), &DapSettingsNetworkModel::setNetworkList); + connect(&DapSettingsNetworkModel::getInstance(), &DapSettingsNetworkModel::currentNetworkChanged, m_pDapCommandController, &DapCommandController::changeCurrentNetwork); } QString DapServiceController::getBrand() const @@ -235,6 +238,11 @@ void DapServiceController::processGetHistory(const QVariant& aData) DapScreenHistoryModel::getInstance().receiveNewData(aData); } +void DapServiceController::getNetworkList() +{ + m_pDapCommandController->getNetworkList(); +} + /// Get an instance of a class. /// @return Instance of a class. diff --git a/CellFrameDashboardGUI/DapServiceController.h b/CellFrameDashboardGUI/DapServiceController.h index 36f5ba190101a5a0edc4de81da60f3cc6a9d5081..9e40b9068f5f2acc3b2cb0d69fe67f58058ef286 100755 --- a/CellFrameDashboardGUI/DapServiceController.h +++ b/CellFrameDashboardGUI/DapServiceController.h @@ -15,6 +15,7 @@ #include "DapChainWalletsModel.h" #include "DapChainNodeNetworkModel.h" #include "DapScreenHistoryModel.h" +#include "DapSettingsNetworkModel.h" class DapServiceController : public QObject { @@ -80,7 +81,7 @@ public: void getWalletInfo(const QString& asWalletName); - + void getNetworkList(); signals: /// The signal is emitted when the Brand company property changes. diff --git a/CellFrameDashboardGUI/DapSettingsNetworkModel.h b/CellFrameDashboardGUI/DapSettingsNetworkModel.h index 215eecb594586199c4effad85fc4a7a7a3c9ecd1..11f16c3b07a9887d3106ffc1655b8dd1e8452bef 100644 --- a/CellFrameDashboardGUI/DapSettingsNetworkModel.h +++ b/CellFrameDashboardGUI/DapSettingsNetworkModel.h @@ -28,7 +28,7 @@ public: QVariant data(const QModelIndex& index, int role) const; QHash<int, QByteArray> roleNames() const; - QString getCurrentNetwork() const; + Q_INVOKABLE QString getCurrentNetwork() const; public slots: void setNetworkList(const QStringList& aNetworkList); diff --git a/CellFrameDashboardGUI/DapUiQmlWidgetSettingsNetwork.qml b/CellFrameDashboardGUI/DapUiQmlWidgetSettingsNetwork.qml index 74a143e5fc470148f802791d03ffdae998c1a4fe..9612bcd247bec8dc1ab1c2a60ca3d91fa2f90896 100644 --- a/CellFrameDashboardGUI/DapUiQmlWidgetSettingsNetwork.qml +++ b/CellFrameDashboardGUI/DapUiQmlWidgetSettingsNetwork.qml @@ -14,5 +14,12 @@ DapUiQmlWidgetSettingsNetworkForm { anchors.topMargin: 13 * pt model: dapSettingsNetworkModel textRole: "network" + currentIndex: find(dapSettingsNetworkModel.CurrentNetwork) + + onCurrentTextChanged: { + console.debug(currentText); + if(dapSettingsNetworkModel.CurrentNetwork != currentText) + dapSettingsNetworkModel.CurrentNetwork = currentText; + } } } diff --git a/CellFrameDashboardGUI/main.cpp b/CellFrameDashboardGUI/main.cpp index ab633386f8f1e44e4448ccab62e4360de371dfa9..b53c3f7c9aaf6a37bbc175ff133bdf572314b31e 100755 --- a/CellFrameDashboardGUI/main.cpp +++ b/CellFrameDashboardGUI/main.cpp @@ -54,6 +54,7 @@ int main(int argc, char *argv[]) dapServiceClient.init(); controller.getWallets(); controller.getHistory(); + controller.getNetworkList(); DapScreenHistoryFilterModel::getInstance() .setSourceModel(&DapScreenHistoryModel::getInstance()); diff --git a/CellFrameDashboardService/DapChainDashboardService.cpp b/CellFrameDashboardService/DapChainDashboardService.cpp index 7182237594b1c3d9b7e6f270095baa55f6977bbe..a117d4403809ef114cc80400e8a1f7eb5283d405 100755 --- a/CellFrameDashboardService/DapChainDashboardService.cpp +++ b/CellFrameDashboardService/DapChainDashboardService.cpp @@ -101,6 +101,12 @@ void DapChainDashboardService::setCurrentNetwork(const QString& aNetwork) m_pDapChainNetworkHandler->setCurrentNetwork(aNetwork); } +void DapChainDashboardService::changeCurrentNetwork(const QString& aNetwork) +{ + m_pDapChainNetworkHandler->setCurrentNetwork(aNetwork); + m_pDapChainHistoryHandler->setCurrentNetwork(aNetwork); +} + void DapChainDashboardService::doRequestWallets() { m_pDapChainHistoryHandler->onRequestNewHistory(m_pDapChainWalletHandler->getWallets()); diff --git a/CellFrameDashboardService/DapChainDashboardService.h b/CellFrameDashboardService/DapChainDashboardService.h index f9e230784bfe4e7481167ea61d6649140d7cce5b..46bffd9811bfabb1851ca600576d5dc968d01886 100755 --- a/CellFrameDashboardService/DapChainDashboardService.h +++ b/CellFrameDashboardService/DapChainDashboardService.h @@ -110,6 +110,8 @@ public slots: void setCurrentNetwork(const QString& aNetwork); + void changeCurrentNetwork(const QString& aNetwork); + private slots: void doRequestWallets(); void doSendNewHistory(const QVariant& aData); diff --git a/CellFrameDashboardService/DapChainHistoryHandler.cpp b/CellFrameDashboardService/DapChainHistoryHandler.cpp index bf44fd19d27458d6f54b162b8b2f0c82075df35b..9dfbfa5871f256e51a6bced002e21c19bff87f8c 100644 --- a/CellFrameDashboardService/DapChainHistoryHandler.cpp +++ b/CellFrameDashboardService/DapChainHistoryHandler.cpp @@ -22,7 +22,7 @@ void DapChainHistoryHandler::onRequestNewHistory(const QMap<QString, QVariant>& for(int i = 0; i < wallets.count(); i++) { QProcess process; - process.start(QString(CLI_PATH) + " tx_history -net private -chain gdb -addr " + wallets.at(i).toString()); + process.start(QString(CLI_PATH) + " tx_history -net " + m_CurrentNetwork + " -chain gdb -addr " + wallets.at(i).toString()); process.waitForFinished(-1); QByteArray result = process.readAll(); diff --git a/CellFrameDashboardService/DapChainNetworkHandler.cpp b/CellFrameDashboardService/DapChainNetworkHandler.cpp index 3eda1cde0d162d1587ffcd61b2e3b503eabf1bf6..9f0e31eb98808bb6a5878103849d204718122928 100644 --- a/CellFrameDashboardService/DapChainNetworkHandler.cpp +++ b/CellFrameDashboardService/DapChainNetworkHandler.cpp @@ -1,16 +1,34 @@ #include "DapChainNetworkHandler.h" -DapChainNetworkHandler::DapChainNetworkHandler(QObject *parent) : QObject(parent) +DapChainNetworkHandler::DapChainNetworkHandler(QObject *parent) : QObject(parent), + m_CurrentNetwork(-1) { } -QStringList DapChainNetworkHandler::getNetworkList() const +QStringList DapChainNetworkHandler::getNetworkList() { - return QStringList(); + QStringList network; + /// TODO: It's test. We should change it later + QFile file("network.txt"); + if(file.open(QIODevice::ReadOnly | QIODevice::Text)) + { + QString data = QString::fromStdString(file.readAll().toStdString()); + network = data.split(": ").at(1).split(", "); + } + + if(!network.isEmpty()) + { + if(m_CurrentNetwork.isEmpty() || !m_NetworkList.contains(m_CurrentNetwork)) + m_CurrentNetwork = network.at(0); + emit changeCurrentNetwork(m_CurrentNetwork); + } + + return network; } void DapChainNetworkHandler::setCurrentNetwork(const QString& aNetwork) { - emit changeCurrentNetwork(aNetwork); + if(m_NetworkList.contains(aNetwork)) + emit changeCurrentNetwork(aNetwork); } diff --git a/CellFrameDashboardService/DapChainNetworkHandler.h b/CellFrameDashboardService/DapChainNetworkHandler.h index 3bd57ac558099d9351e6e3e2def1e1b8409b96a7..6174cb3475ad5eb81e0fb53c2cf507eca546f65c 100644 --- a/CellFrameDashboardService/DapChainNetworkHandler.h +++ b/CellFrameDashboardService/DapChainNetworkHandler.h @@ -4,17 +4,20 @@ #include <QObject> #include <QString> +#include <QFile> + class DapChainNetworkHandler : public QObject { Q_OBJECT private: + QString m_CurrentNetwork; QStringList m_NetworkList; public: explicit DapChainNetworkHandler(QObject *parent = nullptr); - QStringList getNetworkList() const; + QStringList getNetworkList(); public slots: void setCurrentNetwork(const QString& aNetwork);