mirror of
https://github.com/feather-wallet/feather.git
synced 2025-03-12 09:37:47 +00:00
Nodes: load old config format
This commit is contained in:
parent
fba93e98fc
commit
064dd585ad
1 changed files with 19 additions and 8 deletions
|
@ -13,8 +13,7 @@
|
|||
|
||||
bool NodeList::addNode(const QString &node, NetworkType::Type networkType, NodeList::Type source) {
|
||||
// We can't obtain references to QJsonObjects...
|
||||
|
||||
QJsonObject obj = config()->get(Config::nodes).toJsonObject();
|
||||
QJsonObject obj = this->getConfigData();
|
||||
this->ensureStructure(obj, networkType);
|
||||
|
||||
QString networkTypeStr = QString::number(networkType);
|
||||
|
@ -37,7 +36,7 @@ bool NodeList::addNode(const QString &node, NetworkType::Type networkType, NodeL
|
|||
}
|
||||
|
||||
void NodeList::setNodes(const QStringList &nodes, NetworkType::Type networkType, NodeList::Type source) {
|
||||
QJsonObject obj = config()->get(Config::nodes).toJsonObject();
|
||||
QJsonObject obj = this->getConfigData();
|
||||
this->ensureStructure(obj, networkType);
|
||||
|
||||
QString networkTypeStr = QString::number(networkType);
|
||||
|
@ -53,7 +52,8 @@ void NodeList::setNodes(const QStringList &nodes, NetworkType::Type networkType,
|
|||
}
|
||||
|
||||
QStringList NodeList::getNodes(NetworkType::Type networkType, NodeList::Type source) {
|
||||
QJsonObject obj = config()->get(Config::nodes).toJsonObject();
|
||||
QJsonObject obj = this->getConfigData();
|
||||
this->ensureStructure(obj, networkType);
|
||||
|
||||
QString networkTypeStr = QString::number(networkType);
|
||||
QJsonObject netTypeObj = obj.value(networkTypeStr).toObject();
|
||||
|
@ -68,12 +68,23 @@ QStringList NodeList::getNodes(NetworkType::Type networkType, NodeList::Type sou
|
|||
return nodes;
|
||||
}
|
||||
|
||||
QJsonObject NodeList::getConfigData() {
|
||||
QJsonObject obj = config()->get(Config::nodes).toJsonObject();
|
||||
|
||||
// Load old config format
|
||||
if (obj.isEmpty()) {
|
||||
auto jsonData = config()->get(Config::nodes).toByteArray();
|
||||
if (Utils::validateJSON(jsonData)) {
|
||||
QJsonDocument doc = QJsonDocument::fromJson(jsonData);
|
||||
obj = doc.object();
|
||||
}
|
||||
}
|
||||
|
||||
return obj;
|
||||
}
|
||||
|
||||
void NodeList::ensureStructure(QJsonObject &obj, NetworkType::Type networkType) {
|
||||
QString networkTypeStr = QString::number(networkType);
|
||||
|
||||
if (!obj.contains(networkTypeStr))
|
||||
obj[networkTypeStr] = QJsonObject();
|
||||
|
||||
QJsonObject netTypeObj = obj.value(networkTypeStr).toObject();
|
||||
if (!netTypeObj.contains("ws"))
|
||||
netTypeObj["ws"] = QJsonArray();
|
||||
|
|
Loading…
Reference in a new issue