From eda53febdee5bbeddd2c59bd4a107fbd92b38356 Mon Sep 17 00:00:00 2001 From: Tarja Sundqvist Date: Tue, 6 Aug 2019 10:08:05 +0300 Subject: Add an example snippet to Network settings manager class The NetworkSettingsManager class documentation is updated with an example code snippet. Task-number: QTBUG-76810 Change-Id: Ic02109332281357c941dec77fe2995988cbc9359 Reviewed-by: Teemu Holappa --- src/networksettings/qnetworksettingsmanager.cpp | 42 ++++++++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) diff --git a/src/networksettings/qnetworksettingsmanager.cpp b/src/networksettings/qnetworksettingsmanager.cpp index c7c2230..667004f 100644 --- a/src/networksettings/qnetworksettingsmanager.cpp +++ b/src/networksettings/qnetworksettingsmanager.cpp @@ -41,7 +41,8 @@ QT_BEGIN_NAMESPACE \class QNetworkSettingsManager \inmodule QtNetworkSettings - \brief The QNetworkSettingsManager class manages network settings. + \brief The QNetworkSettingsManager class provides an asynchronous API to + network settings. The network manager is designed to be used as a model that contains lists of available network interfaces and services. @@ -53,6 +54,45 @@ QT_BEGIN_NAMESPACE \l QNetworkSettingsType::type property, and network service items can be retrieved with the \l QNetworkSettingsServiceFilter::itemFromRow() method. + The following code demonstrates how you initialize the network manager: + + \code + manager = new QNetworkSettingsManager(this); + QObject::connect(manager, &QNetworkSettingsManager::interfacesChanged, + this, &MainWindow::interfacesChanged); + + QObject::connect(manager, &QNetworkSettingsManager::servicesChanged, + this, &MainWindow::servicesChanged); + \endcode + + After initializing the network manager, you can iterate WiFi SSIDs as follows: + + \code + void WifiHandler::servicesChanged() + { + QList services = qobject_cast(manager->services()->sourceModel())->getModel(); + + for (const auto &service : services) { + qDebug() << service->name(); + } + } + + + void WifiHandler::interfacesChanged() + { + QList interfaces = manager->interfaces()->getModel(); + for (const auto &interface : interfaces) { + if (interface->type() == QNetworkSettingsType::Types::Wifi) { + if (interface->powered()) { + interface->scanServices(); + } else { + interface->setPowered(true); + } + } + } + } + \endcode + \sa QNetworkSettingsService */ -- cgit v1.2.3