diff --git a/app/vpn/relayclient.cpp b/app/vpn/relayclient.cpp index 70914b0..cbb387e 100644 --- a/app/vpn/relayclient.cpp +++ b/app/vpn/relayclient.cpp @@ -205,6 +205,20 @@ void RelayClient::onHostsReply(QNetworkReply *reply) h.name = obj[QStringLiteral("name")].toString(); h.ip = obj[QStringLiteral("ip")].toString(); h.port = obj[QStringLiteral("port")].toInt(47984); + + // Parse displays array if present + const QJsonArray displaysArr = obj[QStringLiteral("displays")].toArray(); + for (const QJsonValue &dv : displaysArr) { + const QJsonObject displayObj = dv.toObject(); + QVariantMap displayMap; + displayMap[QStringLiteral("name")] = displayObj[QStringLiteral("name")].toString(); + displayMap[QStringLiteral("friendlyName")] = displayObj[QStringLiteral("friendlyName")].toString(); + displayMap[QStringLiteral("width")] = displayObj[QStringLiteral("width")].toInt(); + displayMap[QStringLiteral("height")] = displayObj[QStringLiteral("height")].toInt(); + displayMap[QStringLiteral("isPrimary")] = displayObj[QStringLiteral("isPrimary")].toBool(); + h.displays.append(displayMap); + } + if (!h.ip.isEmpty()) hosts << h; } @@ -252,7 +266,7 @@ QList RelayClient::savedServers() const s.label = label; s.url = QUrl(m_settings->value(QStringLiteral("url")).toString()); s.username = m_settings->value(QStringLiteral("username")).toString(); - s.password = m_settings->value(QStringLiteral("password")).toString(); + s.password = m_settings->value(QStringLiteral("password")).toString()); m_settings->endGroup(); list << s; }