summaryrefslogtreecommitdiffstats
path: root/src/networksettings/qnetworksettingsmanager.cpp
diff options
context:
space:
mode:
authorVille Voutilainen <ville.voutilainen@qt.io>2018-04-26 11:57:16 +0300
committerVille Voutilainen <ville.voutilainen@qt.io>2018-04-27 09:51:53 +0000
commit2215248c450b6bd3f728e813f289f099d4301523 (patch)
treee68b66fa839ce3695b45fca3254e84076185ec1a /src/networksettings/qnetworksettingsmanager.cpp
parent518749701642b9d93773b5599e9a64ecbc640b9a (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.cpp52
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()