diff options
author | Ville Voutilainen <ville.voutilainen@qt.io> | 2018-04-26 11:57:16 +0300 |
---|---|---|
committer | Ville Voutilainen <ville.voutilainen@qt.io> | 2018-04-27 09:51:53 +0000 |
commit | 2215248c450b6bd3f728e813f289f099d4301523 (patch) | |
tree | e68b66fa839ce3695b45fca3254e84076185ec1a /src/networksettings/qnetworksettingsmanager.cpp | |
parent | 518749701642b9d93773b5599e9a64ecbc640b9a (diff) |
Add support for wi-fi networks with hidden SSID
Task-number: QTBUG-62661
Change-Id: I894f37d2ac397ca2a10db92b1daec9997a9733bb
Reviewed-by: Teemu Holappa <teemu.holappa@qt.io>
Diffstat (limited to 'src/networksettings/qnetworksettingsmanager.cpp')
-rw-r--r-- | src/networksettings/qnetworksettingsmanager.cpp | 52 |
1 files changed, 52 insertions, 0 deletions
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 <QStringListModel> 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() |