From c81758a50d489ced5f03d5f54441a9a37e47a936 Mon Sep 17 00:00:00 2001 From: jonymt <johanmt@yandex.ru> Date: Fri, 20 Sep 2019 21:50:25 +0200 Subject: [PATCH] [+] added filling combobox --- .../DapCommandController.cpp | 19 +++++++++++++- CellFrameDashboardGUI/DapCommandController.h | 8 ++++++ .../DapServiceController.cpp | 8 ++++++ CellFrameDashboardGUI/DapServiceController.h | 3 ++- .../DapSettingsNetworkModel.h | 2 +- .../DapUiQmlWidgetSettingsNetwork.qml | 7 +++++ CellFrameDashboardGUI/main.cpp | 1 + .../DapChainDashboardService.cpp | 6 +++++ .../DapChainDashboardService.h | 2 ++ .../DapChainHistoryHandler.cpp | 2 +- .../DapChainNetworkHandler.cpp | 26 ++++++++++++++++--- .../DapChainNetworkHandler.h | 5 +++- 12 files changed, 80 insertions(+), 9 deletions(-) diff --git a/CellFrameDashboardGUI/DapCommandController.cpp b/CellFrameDashboardGUI/DapCommandController.cpp index 7a3cc5b53..a6f5629a5 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 78152aba3..605f85ff3 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 3b8f210af..3b60c7bbe 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 36f5ba190..9e40b9068 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 215eecb59..11f16c3b0 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 74a143e5f..9612bcd24 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 ab633386f..b53c3f7c9 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 718223759..a117d4403 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 f9e230784..46bffd981 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 bf44fd19d..9dfbfa587 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 3eda1cde0..9f0e31eb9 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 3bd57ac55..6174cb347 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); -- GitLab