diff --git a/CellFrameDashboardGUI/CellFrameDashboardGUI.pro b/CellFrameDashboardGUI/CellFrameDashboardGUI.pro index f9da905e697014a35b504e1818597fcfe7cb876d..3a5fc878c2c2072fe838dec521d924a81a280ddf 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 0000000000000000000000000000000000000000..04ee26f805a131b1f2da5dee819d05523ae03c8c --- /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 0000000000000000000000000000000000000000..215eecb594586199c4effad85fc4a7a7a3c9ecd1 --- /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 4636c15b5b0a13bc86ed715962066ae47b6031b8..f538161eee58356dc4ab14aafdb61b8811eebcef 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 0000000000000000000000000000000000000000..d1f6abc94427bb3d534e7151c05b45b650fb62d7 --- /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 0000000000000000000000000000000000000000..9faa0c04d692a727610d3084348cf081ae43d72a --- /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 6c1b829220a6d347f17928a7280198ce5d6988fc..51daf175e8ac5cc74566191555d1b610c6073aba 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 0000000000000000000000000000000000000000..74a143e5fc470148f802791d03ffdae998c1a4fe --- /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 0000000000000000000000000000000000000000..96a8ae4f5771e1ed409dbaa2ffc4afbcc2382791 --- /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 6afac464fa22dbda108319504707fde41b9bf859..ab633386f8f1e44e4448ccab62e4360de371dfa9 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 9079a6942c6e3c38385eb0c5b4180ec85f953154..182598de8f2f040180e2ebc30a923fe1385e494a 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 6f72f9b0064ed3d8b75f81482d71412740167514..c5c420e52e0d2e00b498d86d0e30cd579f85ea76 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 836db4b3c864104eab2f4a1f1693c3ea10568554..7182237594b1c3d9b7e6f270095baa55f6977bbe 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 4e4c0f9f0a9e76e2f3d1e2e5ae042722cbb00928..f9e230784bfe4e7481167ea61d6649140d7cce5b 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 2bb2dd5fa738fa85d28175000dce01d695fe562e..bf44fd19d27458d6f54b162b8b2f0c82075df35b 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 1d204c46ac0e6a7a0a3102784a2e2c107738711e..221a0ae6fd424c785d9cf389c00e8b0dd446dd45 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 0000000000000000000000000000000000000000..3eda1cde0d162d1587ffcd61b2e3b503eabf1bf6 --- /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 0000000000000000000000000000000000000000..3bd57ac558099d9351e6e3e2def1e1b8409b96a7 --- /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