From 2215248c450b6bd3f728e813f289f099d4301523 Mon Sep 17 00:00:00 2001 From: Ville Voutilainen Date: Thu, 26 Apr 2018 11:57:16 +0300 Subject: Add support for wi-fi networks with hidden SSID Task-number: QTBUG-62661 Change-Id: I894f37d2ac397ca2a10db92b1daec9997a9733bb Reviewed-by: Teemu Holappa --- src/networksettings/qnetworksettingsmanager.cpp | 52 +++++++++++++++++++++++++ 1 file changed, 52 insertions(+) (limited to 'src/networksettings/qnetworksettingsmanager.cpp') diff --git a/src/networksettings/qnetworksettingsmanager.cpp b/src/networksettings/qnetworksettingsmanager.cpp index 71aa081..cda66e7 100644 --- a/src/networksettings/qnetworksettingsmanager.cpp +++ b/src/networksettings/qnetworksettingsmanager.cpp @@ -32,6 +32,7 @@ #include "qnetworksettingsinterface.h" #include "qnetworksettingsinterfacemodel.h" #include "qnetworksettingsmanager_p.h" +#include "qnetworksettingsuseragent.h" #include QT_BEGIN_NAMESPACE @@ -66,6 +67,55 @@ QNetworkSettingsService* QNetworkSettingsManager::service(const QString& name, i return nullptr; } +void QNetworkSettingsManager::connectBySsid(const QString &name, const QString &passphrase) +{ + Q_D(QNetworkSettingsManager); + QNetworkSettingsUserAgent* agent = userAgent(); + if (agent) + agent->setSsidAndPassphrase(name, passphrase); + d->connectBySsid(name); +} + +void QNetworkSettingsManager::clearConnectionState() +{ + Q_D(QNetworkSettingsManager); + d->clearConnectionState(); + QNetworkSettingsUserAgent* agent = userAgent(); + if (agent) + agent->clearConnectionState(); +} + +void QNetworkSettingsManager::tryNextConnection() +{ + Q_D(QNetworkSettingsManager); + d->tryNextConnection(); +} + +void QNetworkSettingsManager::clearCurrentWifiConnection(QNetworkSettingsService* service) +{ + Q_D(QNetworkSettingsManager); + QNetworkSettingsService *currentService = d->currentWifiConnection(); + if (service == currentService) { + d->setCurrentWifiConnection(nullptr); + emit currentWifiConnectionChanged(); + } +} + +void QNetworkSettingsManager::setCurrentWifiConnection(QNetworkSettingsService* service) +{ + Q_D(QNetworkSettingsManager); + QNetworkSettingsService *currentService = d->currentWifiConnection(); + d->setCurrentWifiConnection(service); + if (service != currentService) + emit currentWifiConnectionChanged(); +} + +QNetworkSettingsService* QNetworkSettingsManager::currentWifiConnection() +{ + Q_D(QNetworkSettingsManager); + return d->currentWifiConnection(); +} + QNetworkSettingsInterface* QNetworkSettingsManager::interface(int type, int instance) { Q_D(QNetworkSettingsManager); @@ -86,6 +136,8 @@ void QNetworkSettingsManager::setUserAgent(QNetworkSettingsUserAgent *agent) { Q_D(QNetworkSettingsManager); d->setUserAgent(agent); + connect(agent, &QNetworkSettingsUserAgent::requestNextConnection, + this, &QNetworkSettingsManager::tryNextConnection); } QNetworkSettingsUserAgent* QNetworkSettingsManager::userAgent() -- cgit v1.2.3