diff --git a/chain/wallet/DapNetwork.cpp b/chain/wallet/DapNetwork.cpp index eb11868a5ecd8e751a79b87d2b0f378ccca72226..aeaf3e5a9dfa5c85015263cdcf4e38a8235125ec 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 8736babc9e827d8b20dad4799ce9a66e7648b399..771d51ed43db0ed585de7ec2640e0f4066f050fd 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 8509b88b56f37a1b4c08211e5be8a6496d2b7f2a..4c980098f72df100529ac840d4b74c465e2db521 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 bde64472feae483cc93ee8b8a2de4759cc8e2c14..164b421d3608f49a469a07ee612ff8d50799ef5f 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; };