From 13278f266c80595f3131aabc906eb7cda3908516 Mon Sep 17 00:00:00 2001 From: alexandr <alexandrmruchok@gmail.com> Date: Tue, 13 Oct 2020 09:37:41 +0300 Subject: [PATCH] [+] DapNetwork [+] DapNetworksList --- chain/wallet/DapNetwork.cpp | 108 ++++++++++++++++++++++++ chain/wallet/DapNetwork.h | 74 ++++++++++++++++ chain/wallet/libdap-qt-chain-wallet.pri | 7 +- chain/wallet/models/DapNetworksList.cpp | 17 ++++ chain/wallet/models/DapNetworksList.h | 20 +++++ 5 files changed, 225 insertions(+), 1 deletion(-) create mode 100644 chain/wallet/DapNetwork.cpp create mode 100644 chain/wallet/DapNetwork.h create mode 100644 chain/wallet/models/DapNetworksList.cpp create mode 100644 chain/wallet/models/DapNetworksList.h diff --git a/chain/wallet/DapNetwork.cpp b/chain/wallet/DapNetwork.cpp new file mode 100644 index 00000000..eb11868a --- /dev/null +++ b/chain/wallet/DapNetwork.cpp @@ -0,0 +1,108 @@ +#include "DapNetwork.h" + +DapNetwork::DapNetwork(QObject * a_parent /*= nullptr*/) + :QObject(a_parent) +{ +} + +int DapNetwork::linksCount() const +{ + return m_linksCount; +} + +void DapNetwork::setLinksCount(int a_linksCount) +{ + m_linksCount = a_linksCount; +} + +int DapNetwork::activeLinksCount() const +{ + return m_activeLinksCount; +} + +void DapNetwork::setActiveLinksCount(int a_count) +{ + if (m_activeLinksCount == a_count) + return; + + m_activeLinksCount = a_count; + emit this->activeLinksCountChanged(a_count); +} + +QString DapNetwork::nodeAddress() const +{ + return m_nodeAddress; +} + +void DapNetwork::setNodeAddress(const QString &a_nodeAddress) +{ + if (m_nodeAddress == a_nodeAddress) + return; + + m_nodeAddress = a_nodeAddress; + emit this->nodeAddressChanged(a_nodeAddress); +} + +QString DapNetwork::name() const +{ + return m_name; +} + +DapNetwork::State DapNetwork::state() const +{ + return m_state; +} + +QString DapNetwork::stateString() const +{ + return DapNetwork::stateToString(m_state); +} + +void DapNetwork::setName(const QString &a_name) +{ + if (m_name == a_name) + return; + + m_name = a_name; + emit this->nameChanged(a_name); +} + +void DapNetwork::setState(DapNetwork::State a_state) +{ + if (m_state == a_state) + return; + m_state = a_state; + + emit this->stateChanged(DapNetwork::stateToString(a_state)); +} + +DapNetwork::State DapNetwork::targetState() const +{ + return m_targetState; +} + +QString DapNetwork::targetStateString() const +{ + return DapNetwork::stateToString(m_targetState); +} + +void DapNetwork::setTargetState(DapNetwork::State a_targetState) +{ + if (m_targetState == a_targetState) + return; + m_targetState = a_targetState; + + emit this->targetStateChanged(DapNetwork::stateToString(a_targetState)); +// emit this->targetStateChanged(a_targetState); +} + +QString DapNetwork::stateToString(DapNetwork::State a_state) +{ + switch (a_state) + { + case State::Online: return "Online"; + case State::Offline: return "Offline"; + default: return {}; + } +} + diff --git a/chain/wallet/DapNetwork.h b/chain/wallet/DapNetwork.h new file mode 100644 index 00000000..8736babc --- /dev/null +++ b/chain/wallet/DapNetwork.h @@ -0,0 +1,74 @@ +#ifndef DAPNETWORK_H +#define DAPNETWORK_H + +#include <QObject> + +class DapNetwork: public QObject +{ + Q_OBJECT +public: + + enum State + { + Online, + Offline + //... + }; + + Q_INVOKABLE explicit DapNetwork(QObject * a_parent = nullptr); + + Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged) + Q_PROPERTY(QString state READ stateString NOTIFY stateChanged) + Q_PROPERTY(QString targetState READ targetStateString NOTIFY targetStateChanged) + Q_PROPERTY(int activeLinksCount READ activeLinksCount WRITE setActiveLinksCount NOTIFY activeLinksCountChanged) + Q_PROPERTY(int linksCount READ linksCount WRITE setLinksCount NOTIFY linksCountChanged) + Q_PROPERTY(QString nodeAddress READ nodeAddress WRITE setNodeAddress NOTIFY nodeAddressChanged) + + + int linksCount() const; + void setLinksCount(int a_linksCount); + + int activeLinksCount() const; + void setActiveLinksCount(int a_count); + + QString nodeAddress() const; + void setNodeAddress(const QString &a_nodeAddress); + + QString name() const; + void setName(const QString &a_name); + + State state() const; + QString stateString() const; + void setState(State a_state); + + State targetState() const; + QString targetStateString() const; + void setTargetState(State a_targetState); + +signals: + void nameChanged(const QString& a_name); + + QString stateChanged(const QString& a_state); + + QString targetStateChanged(const QString& a_targetState); + + void activeLinksCountChanged(int a_count); + void linksCountChanged(int a_count); + void nodeAddressChanged(const QString& a_nodeAddress); + +private: + static QString stateToString(State a_state); + + + QString m_name; + State m_state; + State m_targetState; + + int m_linksCount{}; + int m_activeLinksCount{}; + QString m_nodeAddress; +}; + +Q_DECLARE_METATYPE(DapNetwork::State) + +#endif // DAPNETWORK_H diff --git a/chain/wallet/libdap-qt-chain-wallet.pri b/chain/wallet/libdap-qt-chain-wallet.pri index a0549715..ca70759c 100644 --- a/chain/wallet/libdap-qt-chain-wallet.pri +++ b/chain/wallet/libdap-qt-chain-wallet.pri @@ -1,6 +1,7 @@ QT += core -INCLUDEPATH += $$PWD $$PWD/../ +INCLUDEPATH += $$PWD $$PWD/../ \ + $$PWD/models include (dapRPCProtocol/DapRPCProtocol.pri) @@ -16,6 +17,7 @@ HEADERS += \ $$PWD/DapChainConvertor.h \ $$PWD/DapHistoryType.h \ $$PWD/DapLogMessage.h \ + $$PWD/DapNetwork.h \ $$PWD/DapNodeType.h \ $$PWD/DapWallet.h \ $$PWD/DapWalletHistoryEvent.h \ @@ -42,6 +44,7 @@ HEADERS += \ $$PWD/handlers/DapRunCmdCommand.h \ $$PWD/handlers/DapSaveHistoryExecutedCmdCommand.h \ $$PWD/handlers/DapUpdateLogsCommand.h \ + $$PWD/models/DapNetworksList.h \ $$PWD/models/DapWalletModel.h \ $$PWD/serviceClient/DapServiceClient.h \ $$PWD/serviceClient/DapServiceClientNativeAbstract.h \ @@ -54,6 +57,7 @@ SOURCES += \ $$PWD/DapChainConvertor.cpp \ $$PWD/DapHistoryType.cpp \ $$PWD/DapLogMessage.cpp \ + $$PWD/DapNetwork.cpp \ $$PWD/DapWallet.cpp \ $$PWD/DapWalletHistoryEvent.cpp \ $$PWD/DapWalletToken.cpp \ @@ -78,6 +82,7 @@ SOURCES += \ $$PWD/handlers/DapRunCmdCommand.cpp \ $$PWD/handlers/DapSaveHistoryExecutedCmdCommand.cpp \ $$PWD/handlers/DapUpdateLogsCommand.cpp \ + $$PWD/models/DapNetworksList.cpp \ $$PWD/models/DapWalletModel.cpp \ $$PWD/serviceClient/DapServiceClient.cpp \ $$PWD/serviceClient/DapServiceClientNativeAbstract.cpp \ diff --git a/chain/wallet/models/DapNetworksList.cpp b/chain/wallet/models/DapNetworksList.cpp new file mode 100644 index 00000000..8509b88b --- /dev/null +++ b/chain/wallet/models/DapNetworksList.cpp @@ -0,0 +1,17 @@ +#include "DapNetworksList.h" + +DapNetworksList::DapNetworksList(QObject *a_parrent /*= nullptr*/) + :QObject(a_parrent) +{ + +} + +QList<QObject *> DapNetworksList::model() +{ + QList<QObject*> listModel; + for (DapNetwork* curNetwork: m_networks) + { + listModel.append(curNetwork); + } + return listModel; +} diff --git a/chain/wallet/models/DapNetworksList.h b/chain/wallet/models/DapNetworksList.h new file mode 100644 index 00000000..bde64472 --- /dev/null +++ b/chain/wallet/models/DapNetworksList.h @@ -0,0 +1,20 @@ +#ifndef DAPNETWORKSLIST_H +#define DAPNETWORKSLIST_H + +#include <QAbstractListModel> +#include <DapNetwork.h> + +class DapNetworksList: public QObject +{ + Q_OBJECT +public: + + DapNetworksList(QObject *a_parrent = nullptr); + + QList<QObject*> model(); + +private: + QList<DapNetwork*> m_networks; +}; + +#endif // DAPNETWORKSMODEL_H -- GitLab