From ba1178d5ffb44f726c9548b069f62847d3d8e086 Mon Sep 17 00:00:00 2001 From: alexandr <alexandrmruchok@gmail.com> Date: Tue, 13 Oct 2020 21:53:45 +0300 Subject: [PATCH] [*] DapNetwork::DapNetwork(const QString& a_name, QObject * a_parent /*= nullptr*/) [+] DapNetworksList::findNetwork(); DapNetworksList::fill() --- chain/wallet/DapNetwork.cpp | 5 ++-- chain/wallet/DapNetwork.h | 2 +- chain/wallet/models/DapNetworksList.cpp | 32 +++++++++++++++++++++++++ chain/wallet/models/DapNetworksList.h | 6 +++++ 4 files changed, 42 insertions(+), 3 deletions(-) diff --git a/chain/wallet/DapNetwork.cpp b/chain/wallet/DapNetwork.cpp index eb11868a..aeaf3e5a 100644 --- a/chain/wallet/DapNetwork.cpp +++ b/chain/wallet/DapNetwork.cpp @@ -1,7 +1,8 @@ #include "DapNetwork.h" -DapNetwork::DapNetwork(QObject * a_parent /*= nullptr*/) - :QObject(a_parent) +DapNetwork::DapNetwork(const QString& a_name, QObject * a_parent /*= nullptr*/) + : QObject(a_parent) + , m_name(a_name) { } diff --git a/chain/wallet/DapNetwork.h b/chain/wallet/DapNetwork.h index 8736babc..771d51ed 100644 --- a/chain/wallet/DapNetwork.h +++ b/chain/wallet/DapNetwork.h @@ -15,7 +15,7 @@ public: //... }; - Q_INVOKABLE explicit DapNetwork(QObject * a_parent = nullptr); + Q_INVOKABLE explicit DapNetwork(const QString& a_name, QObject * a_parent = nullptr); Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged) Q_PROPERTY(QString state READ stateString NOTIFY stateChanged) diff --git a/chain/wallet/models/DapNetworksList.cpp b/chain/wallet/models/DapNetworksList.cpp index 8509b88b..4c980098 100644 --- a/chain/wallet/models/DapNetworksList.cpp +++ b/chain/wallet/models/DapNetworksList.cpp @@ -1,4 +1,5 @@ #include "DapNetworksList.h" +#include <QDebug> DapNetworksList::DapNetworksList(QObject *a_parrent /*= nullptr*/) :QObject(a_parrent) @@ -15,3 +16,34 @@ QList<QObject *> DapNetworksList::model() } return listModel; } + +DapNetwork *DapNetworksList::findNetwork(const QString &a_name) +{ + + auto it = std::find_if(m_networks.begin(), m_networks.end(), [a_name](DapNetwork* a_network){ + return a_network->name() == a_name; + }); + if (it == m_networks.end()) + return nullptr; + return *it; +} + +void DapNetworksList::fill(QVariant a_stringList) +{ + if (!a_stringList.isValid() || !a_stringList.canConvert<QStringList>()) + { + qWarning() << "wrong parametr in DapNetworksList::fill"; + return; + } + + for (QString curNetworkName: a_stringList.toStringList()) + { + DapNetwork* network = this->findNetwork(curNetworkName); + if (!network) + { + network = new DapNetwork(curNetworkName, this); + m_networks.append(network); + //TODO: get state + } + } +} diff --git a/chain/wallet/models/DapNetworksList.h b/chain/wallet/models/DapNetworksList.h index bde64472..164b421d 100644 --- a/chain/wallet/models/DapNetworksList.h +++ b/chain/wallet/models/DapNetworksList.h @@ -11,8 +11,14 @@ public: DapNetworksList(QObject *a_parrent = nullptr); + QList<QObject*> model(); + DapNetwork* findNetwork(const QString& a_name); + +public slots: + void fill(QVariant a_stringList); + private: QList<DapNetwork*> m_networks; }; -- GitLab