From fe612512c617e4642e2591b0e0fd4ccc479ee4a3 Mon Sep 17 00:00:00 2001 From: jonymt <johanmt@yandex.ru> Date: Fri, 20 Sep 2019 00:00:43 +0200 Subject: [PATCH] [+] added network handler for service [+] added network handler for service --- .../CellFrameDashboardGUI.pro | 6 +- .../DapSettingsNetworkModel.cpp | 58 +++++++++++++++++++ .../DapSettingsNetworkModel.h | 41 +++++++++++++ .../DapUiQmlScreenMainWindowForm.ui.qml | 4 +- .../DapUiQmlScreenSettings.qml | 54 +++++++++++++++++ .../DapUiQmlScreenSettingsForm.ui.qml | 5 ++ .../DapUiQmlWidgetConsole.qml | 13 +++-- .../DapUiQmlWidgetSettingsNetwork.qml | 18 ++++++ .../DapUiQmlWidgetSettingsNetworkForm.ui.qml | 6 ++ CellFrameDashboardGUI/main.cpp | 4 +- CellFrameDashboardGUI/qml.qrc | 4 ++ .../CellFrameDashboardService.pro | 8 ++- .../DapChainDashboardService.cpp | 15 ++++- .../DapChainDashboardService.h | 7 +++ .../DapChainHistoryHandler.cpp | 6 ++ .../DapChainHistoryHandler.h | 2 + .../DapChainNetworkHandler.cpp | 16 +++++ .../DapChainNetworkHandler.h | 26 +++++++++ 18 files changed, 280 insertions(+), 13 deletions(-) create mode 100644 CellFrameDashboardGUI/DapSettingsNetworkModel.cpp create mode 100644 CellFrameDashboardGUI/DapSettingsNetworkModel.h create mode 100644 CellFrameDashboardGUI/DapUiQmlScreenSettings.qml create mode 100644 CellFrameDashboardGUI/DapUiQmlScreenSettingsForm.ui.qml create mode 100644 CellFrameDashboardGUI/DapUiQmlWidgetSettingsNetwork.qml create mode 100644 CellFrameDashboardGUI/DapUiQmlWidgetSettingsNetworkForm.ui.qml create mode 100644 CellFrameDashboardService/DapChainNetworkHandler.cpp create mode 100644 CellFrameDashboardService/DapChainNetworkHandler.h diff --git a/CellFrameDashboardGUI/CellFrameDashboardGUI.pro b/CellFrameDashboardGUI/CellFrameDashboardGUI.pro index f9da905e6..3a5fc878c 100755 --- a/CellFrameDashboardGUI/CellFrameDashboardGUI.pro +++ b/CellFrameDashboardGUI/CellFrameDashboardGUI.pro @@ -44,6 +44,7 @@ SOURCES += \ DapChainNodeNetworkModel.cpp \ DapScreenHistoryFilterModel.cpp \ DapScreenHistoryModel.cpp \ + DapSettingsNetworkModel.cpp \ DapUiQmlWidgetChainTransactions.cpp \ main.cpp \ DapUiQmlWidgetChainBallance.cpp \ @@ -80,6 +81,7 @@ HEADERS += \ DapChainNodeNetworkModel.h \ DapScreenHistoryFilterModel.h \ DapScreenHistoryModel.h \ + DapSettingsNetworkModel.h \ DapUiQmlWidgetChainBallance.h \ DapUiQmlWidgetChainBlockExplorer.h \ DapUiQmlWidgetChainNodeLogs.h \ @@ -115,4 +117,6 @@ unix: !mac : !android { INSTALLS += gui_target } -DISTFILES += +#DISTFILES += \ +# DapUiQmlScreenSettings.qml \ +# DapUiQmlScreenSettingsForm.ui.qml diff --git a/CellFrameDashboardGUI/DapSettingsNetworkModel.cpp b/CellFrameDashboardGUI/DapSettingsNetworkModel.cpp new file mode 100644 index 000000000..04ee26f80 --- /dev/null +++ b/CellFrameDashboardGUI/DapSettingsNetworkModel.cpp @@ -0,0 +1,58 @@ +#include "DapSettingsNetworkModel.h" + +DapSettingsNetworkModel::DapSettingsNetworkModel(QObject *parent) : QAbstractListModel(parent) +{ + m_NetworkList = QStringList() << "First" << "Second" << "Third" << "Forth"; +} + +DapSettingsNetworkModel& DapSettingsNetworkModel::getInstance() +{ + static DapSettingsNetworkModel instance; + return instance; +} + +int DapSettingsNetworkModel::rowCount(const QModelIndex& parent) const +{ + Q_UNUSED(parent) + + return m_NetworkList.count(); +} + +QVariant DapSettingsNetworkModel::data(const QModelIndex& index, int role) const +{ + if(!index.isValid()) return QVariant(); + if(role == DisplayName) + return m_NetworkList.at(index.row()); + + return QVariant(); +} + +QHash<int, QByteArray> DapSettingsNetworkModel::roleNames() const +{ + QHash<int, QByteArray> roles; + roles[DisplayName] = "network"; + + return roles; +} + +QString DapSettingsNetworkModel::getCurrentNetwork() const +{ + return m_CurrentNetwork; +} + +void DapSettingsNetworkModel::setNetworkList(const QStringList& aNetworkList) +{ + if(m_NetworkList == aNetworkList) return; + beginResetModel(); + m_NetworkList = aNetworkList; + endResetModel(); +} + +void DapSettingsNetworkModel::setCurrentNetwork(QString CurrentNetwork) +{ + if (m_CurrentNetwork == CurrentNetwork) + return; + + m_CurrentNetwork = CurrentNetwork; + emit currentNetworkChanged(m_CurrentNetwork); +} diff --git a/CellFrameDashboardGUI/DapSettingsNetworkModel.h b/CellFrameDashboardGUI/DapSettingsNetworkModel.h new file mode 100644 index 000000000..215eecb59 --- /dev/null +++ b/CellFrameDashboardGUI/DapSettingsNetworkModel.h @@ -0,0 +1,41 @@ +#ifndef DAPSETTINGSNETWORKMODEL_H +#define DAPSETTINGSNETWORKMODEL_H + +#include <QAbstractListModel> +#include <QStringList> +#include <QDebug> + +class DapSettingsNetworkModel : public QAbstractListModel +{ + Q_OBJECT + + Q_PROPERTY(QString CurrentNetwork READ getCurrentNetwork WRITE setCurrentNetwork NOTIFY currentNetworkChanged) + +public: + enum DisplayRole { + DisplayName = Qt::UserRole + }; + +private: + QStringList m_NetworkList; + QString m_CurrentNetwork; + +public: + explicit DapSettingsNetworkModel(QObject *parent = nullptr); + static DapSettingsNetworkModel &getInstance(); + + int rowCount(const QModelIndex& parent) const; + QVariant data(const QModelIndex& index, int role) const; + QHash<int, QByteArray> roleNames() const; + + QString getCurrentNetwork() const; + +public slots: + void setNetworkList(const QStringList& aNetworkList); + void setCurrentNetwork(QString CurrentNetwork); + +signals: + void currentNetworkChanged(QString currentNetwork); +}; + +#endif // DAPSETTINGSNETWORKMODEL_H diff --git a/CellFrameDashboardGUI/DapUiQmlScreenMainWindowForm.ui.qml b/CellFrameDashboardGUI/DapUiQmlScreenMainWindowForm.ui.qml index 4636c15b5..f538161ee 100644 --- a/CellFrameDashboardGUI/DapUiQmlScreenMainWindowForm.ui.qml +++ b/CellFrameDashboardGUI/DapUiQmlScreenMainWindowForm.ui.qml @@ -49,7 +49,9 @@ Page { } ListElement { name: qsTr("Settings") - page: "DapQmlScreenAbout.qml" +// page: "DapQmlScreenAbout.qml" + page: "DapUiQmlScreenSettings.qml" +// page: "DapUiQmlWidgetSettingsNetwork.qml" source: "qrc:/Resources/Icons/defaul_icon.png" } ListElement { diff --git a/CellFrameDashboardGUI/DapUiQmlScreenSettings.qml b/CellFrameDashboardGUI/DapUiQmlScreenSettings.qml new file mode 100644 index 000000000..d1f6abc94 --- /dev/null +++ b/CellFrameDashboardGUI/DapUiQmlScreenSettings.qml @@ -0,0 +1,54 @@ +import QtQuick 2.4 +import QtQuick.Controls 2.12 + +DapUiQmlScreenSettingsForm { + anchors.fill: parent + + ListModel { + id: dapListModelSettings + ListElement { + name: qsTr("Network") + element: "DapUiQmlWidgetSettingsNetwork.qml" + } + } + + ListView { + id: dapListViewSettings + anchors.fill: parent + model: dapListModelSettings + delegate: Component { + + Item { + width: parent.width + height: loaderSettings.height + + Loader { + id: loaderSettings + source: element + } + } + } + + section.property: "name" + section.criteria: ViewSection.FullString + section.delegate: Component { + + Rectangle { + width: parent.width + height: 30 * pt + color: "#DFE1E6" + + Text { + anchors.fill: parent + anchors.leftMargin: 18 * pt + verticalAlignment: Qt.AlignVCenter + text: section + font.family: "Roboto" + font.pixelSize: 12 * pt + color: "#5F5F63" + } + } + + } + } +} diff --git a/CellFrameDashboardGUI/DapUiQmlScreenSettingsForm.ui.qml b/CellFrameDashboardGUI/DapUiQmlScreenSettingsForm.ui.qml new file mode 100644 index 000000000..9faa0c04d --- /dev/null +++ b/CellFrameDashboardGUI/DapUiQmlScreenSettingsForm.ui.qml @@ -0,0 +1,5 @@ +import QtQuick 2.4 + +Item { + anchors.fill: parent +} diff --git a/CellFrameDashboardGUI/DapUiQmlWidgetConsole.qml b/CellFrameDashboardGUI/DapUiQmlWidgetConsole.qml index 6c1b82922..51daf175e 100644 --- a/CellFrameDashboardGUI/DapUiQmlWidgetConsole.qml +++ b/CellFrameDashboardGUI/DapUiQmlWidgetConsole.qml @@ -15,13 +15,14 @@ DapUiQmlWidgetConsoleForm { execute.enabled = false; } + Connections { - target: dapServiceController - onResultChanged: { - command.clear() - result.text = dapServiceController.Result - execute.enabled = true - } + target: dapServiceController + onResultChanged: { + command.clear() + result.text = dapServiceController.Result + execute.enabled = true + } } } diff --git a/CellFrameDashboardGUI/DapUiQmlWidgetSettingsNetwork.qml b/CellFrameDashboardGUI/DapUiQmlWidgetSettingsNetwork.qml new file mode 100644 index 000000000..74a143e5f --- /dev/null +++ b/CellFrameDashboardGUI/DapUiQmlWidgetSettingsNetwork.qml @@ -0,0 +1,18 @@ +import QtQuick 2.4 +import QtQuick.Controls 2.12 + +DapUiQmlWidgetSettingsNetworkForm { + width: parent.width + height: childrenRect.height + + ComboBox { + width: 150 + height: 50 + anchors.left: parent.left + anchors.top: parent.top + anchors.leftMargin: 18 * pt + anchors.topMargin: 13 * pt + model: dapSettingsNetworkModel + textRole: "network" + } +} diff --git a/CellFrameDashboardGUI/DapUiQmlWidgetSettingsNetworkForm.ui.qml b/CellFrameDashboardGUI/DapUiQmlWidgetSettingsNetworkForm.ui.qml new file mode 100644 index 000000000..96a8ae4f5 --- /dev/null +++ b/CellFrameDashboardGUI/DapUiQmlWidgetSettingsNetworkForm.ui.qml @@ -0,0 +1,6 @@ +import QtQuick 2.4 + +Item { + width: 400 + height: 400 +} diff --git a/CellFrameDashboardGUI/main.cpp b/CellFrameDashboardGUI/main.cpp index 6afac464f..ab633386f 100755 --- a/CellFrameDashboardGUI/main.cpp +++ b/CellFrameDashboardGUI/main.cpp @@ -23,6 +23,7 @@ #include "DapChainNodeNetworkModel.h" #include "DapChainNodeNetworkExplorer.h" #include "DapScreenHistoryFilterModel.h" +#include "DapSettingsNetworkModel.h" #include <QRegExp> @@ -73,9 +74,10 @@ int main(int argc, char *argv[]) engine.rootContext()->setContextProperty("dapChainWalletsModel", &DapChainWalletsModel::getInstance()); engine.rootContext()->setContextProperty("dapNodeNetworkModel", &DapChainNodeNetworkModel::getInstance()); engine.rootContext()->setContextProperty("dapHistoryModel", &DapScreenHistoryFilterModel::getInstance()); + engine.rootContext()->setContextProperty("dapSettingsNetworkModel", &DapSettingsNetworkModel::getInstance()); engine.rootContext()->setContextProperty("pt", 1.3); engine.load(QUrl(QStringLiteral("qrc:/main.qml"))); - + if (engine.rootObjects().isEmpty()) return -1; diff --git a/CellFrameDashboardGUI/qml.qrc b/CellFrameDashboardGUI/qml.qrc index 9079a6942..182598de8 100755 --- a/CellFrameDashboardGUI/qml.qrc +++ b/CellFrameDashboardGUI/qml.qrc @@ -58,5 +58,9 @@ <file>DapUiQmlWidgetLastActions.qml</file> <file>DapUiQmlWidgetLastActionsForm.ui.qml</file> <file>DapUiQmlScreenHistoryForm.ui.qml</file> + <file>DapUiQmlWidgetSettingsNetwork.qml</file> + <file>DapUiQmlWidgetSettingsNetworkForm.ui.qml</file> + <file>DapUiQmlScreenSettings.qml</file> + <file>DapUiQmlScreenSettingsForm.ui.qml</file> </qresource> </RCC> diff --git a/CellFrameDashboardService/CellFrameDashboardService.pro b/CellFrameDashboardService/CellFrameDashboardService.pro index 6f72f9b00..c5c420e52 100755 --- a/CellFrameDashboardService/CellFrameDashboardService.pro +++ b/CellFrameDashboardService/CellFrameDashboardService.pro @@ -20,7 +20,7 @@ ICON = icon.ico win32 { VERSION = $${VER_MAJ}.$${VER_MIN}.$$VER_PAT - DEFINES += CLI_PATH=\\\"./cellframe-node-cli.exe\\\" + DEFINES += CLI_PATH=\\\"./kelvin-node-cli.exe\\\" DEFINES += LOG_FILE=\\\"./opt/cellframe-node/var/log/cellframe-node_logs.txt\\\" } else { @@ -48,7 +48,8 @@ SOURCES += \ $$PWD/DapChainNode.cpp \ $$PWD/DapChainNodeCache.cpp \ $$PWD/DapChainWalletHandler.cpp \ - $$PWD/DapChainLogHandler.cpp + $$PWD/DapChainLogHandler.cpp \ + DapChainNetworkHandler.cpp HEADERS += \ $$PWD/DapChainDashboardService.h \ @@ -57,7 +58,8 @@ HEADERS += \ $$PWD/DapChainNodeCache.h \ $$PWD/DapChainNodeNetworkHandler.h \ $$PWD/DapChainWalletHandler.h \ - $$PWD/DapChainLogHandler.h + $$PWD/DapChainLogHandler.h \ + DapChainNetworkHandler.h include (../libdap/libdap.pri) include (../libdap-crypto/libdap-crypto.pri) diff --git a/CellFrameDashboardService/DapChainDashboardService.cpp b/CellFrameDashboardService/DapChainDashboardService.cpp index 836db4b3c..718223759 100755 --- a/CellFrameDashboardService/DapChainDashboardService.cpp +++ b/CellFrameDashboardService/DapChainDashboardService.cpp @@ -13,9 +13,12 @@ DapChainDashboardService::DapChainDashboardService() : DapRpcService(nullptr) m_pDapChainNodeHandler = new DapChainNodeNetworkHandler(this); - m_pDapChainHistoryHandler = new DapChainHistoryHandler {this}; + m_pDapChainHistoryHandler = new DapChainHistoryHandler(this); QObject::connect(m_pDapChainHistoryHandler, &DapChainHistoryHandler::requsetWallets, this, &DapChainDashboardService::doRequestWallets); QObject::connect(m_pDapChainHistoryHandler, &DapChainHistoryHandler::changeHistory, this, &DapChainDashboardService::doSendNewHistory); + + m_pDapChainNetworkHandler = new DapChainNetworkHandler(this); + QObject::connect(m_pDapChainNetworkHandler, &DapChainNetworkHandler::changeCurrentNetwork, m_pDapChainHistoryHandler, &DapChainHistoryHandler::setCurrentNetwork); } bool DapChainDashboardService::start() @@ -88,6 +91,16 @@ QVariant DapChainDashboardService::getHistory() const return m_pDapChainHistoryHandler->getHistory(); } +QStringList DapChainDashboardService::getNetworkList() const +{ + return m_pDapChainNetworkHandler->getNetworkList(); +} + +void DapChainDashboardService::setCurrentNetwork(const QString& aNetwork) +{ + m_pDapChainNetworkHandler->setCurrentNetwork(aNetwork); +} + void DapChainDashboardService::doRequestWallets() { m_pDapChainHistoryHandler->onRequestNewHistory(m_pDapChainWalletHandler->getWallets()); diff --git a/CellFrameDashboardService/DapChainDashboardService.h b/CellFrameDashboardService/DapChainDashboardService.h index 4e4c0f9f0..f9e230784 100755 --- a/CellFrameDashboardService/DapChainDashboardService.h +++ b/CellFrameDashboardService/DapChainDashboardService.h @@ -27,6 +27,7 @@ #include "DapChainWalletHandler.h" #include "DapChainNodeNetworkHandler.h" #include "DapChainHistoryHandler.h" +#include "DapChainNetworkHandler.h" #include <QLocalServer> typedef class DapRpcLocalServer DapUiService; @@ -49,6 +50,8 @@ class DapChainDashboardService : public DapRpcService /// Recipient history of transactions DapChainHistoryHandler* m_pDapChainHistoryHandler {nullptr}; + DapChainNetworkHandler* m_pDapChainNetworkHandler {nullptr}; + public: /// Standard Ñonstructor. explicit DapChainDashboardService(); @@ -103,6 +106,10 @@ public slots: /// @return QList data history QVariant getHistory() const; + QStringList getNetworkList() const; + + void setCurrentNetwork(const QString& aNetwork); + private slots: void doRequestWallets(); void doSendNewHistory(const QVariant& aData); diff --git a/CellFrameDashboardService/DapChainHistoryHandler.cpp b/CellFrameDashboardService/DapChainHistoryHandler.cpp index 2bb2dd5fa..bf44fd19d 100644 --- a/CellFrameDashboardService/DapChainHistoryHandler.cpp +++ b/CellFrameDashboardService/DapChainHistoryHandler.cpp @@ -48,3 +48,9 @@ void DapChainHistoryHandler::onRequestNewHistory(const QMap<QString, QVariant>& emit changeHistory(m_history); } } + +void DapChainHistoryHandler::setCurrentNetwork(const QString& aNetwork) +{ + if(aNetwork == m_CurrentNetwork) return; + m_CurrentNetwork = aNetwork; +} diff --git a/CellFrameDashboardService/DapChainHistoryHandler.h b/CellFrameDashboardService/DapChainHistoryHandler.h index 1d204c46a..221a0ae6f 100644 --- a/CellFrameDashboardService/DapChainHistoryHandler.h +++ b/CellFrameDashboardService/DapChainHistoryHandler.h @@ -16,6 +16,7 @@ class DapChainHistoryHandler : public QObject Q_OBJECT private: + QString m_CurrentNetwork; QVariant m_history; QTimer* m_timoutRequestHistory; @@ -30,6 +31,7 @@ public slots: /// Request new tx history /// @param wallet list void onRequestNewHistory(const QMap<QString, QVariant>& aWallets); + void setCurrentNetwork(const QString& aNetwork); signals: /// Signal for request wallets list diff --git a/CellFrameDashboardService/DapChainNetworkHandler.cpp b/CellFrameDashboardService/DapChainNetworkHandler.cpp new file mode 100644 index 000000000..3eda1cde0 --- /dev/null +++ b/CellFrameDashboardService/DapChainNetworkHandler.cpp @@ -0,0 +1,16 @@ +#include "DapChainNetworkHandler.h" + +DapChainNetworkHandler::DapChainNetworkHandler(QObject *parent) : QObject(parent) +{ + +} + +QStringList DapChainNetworkHandler::getNetworkList() const +{ + return QStringList(); +} + +void DapChainNetworkHandler::setCurrentNetwork(const QString& aNetwork) +{ + emit changeCurrentNetwork(aNetwork); +} diff --git a/CellFrameDashboardService/DapChainNetworkHandler.h b/CellFrameDashboardService/DapChainNetworkHandler.h new file mode 100644 index 000000000..3bd57ac55 --- /dev/null +++ b/CellFrameDashboardService/DapChainNetworkHandler.h @@ -0,0 +1,26 @@ +#ifndef DAPCHAINNETWORKHANDLER_H +#define DAPCHAINNETWORKHANDLER_H + +#include <QObject> +#include <QString> + +class DapChainNetworkHandler : public QObject +{ + Q_OBJECT + +private: + QStringList m_NetworkList; + +public: + explicit DapChainNetworkHandler(QObject *parent = nullptr); + + QStringList getNetworkList() const; + +public slots: + void setCurrentNetwork(const QString& aNetwork); + +signals: + void changeCurrentNetwork(QString network); +}; + +#endif // DAPCHAINNETWORKHANDLER_H -- GitLab