summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.qmake.conf2
-rw-r--r--src/networksettings/connman/connmancommon.h1
-rw-r--r--src/networksettings/connman/qnetworksettingsservice_p.cpp17
-rw-r--r--src/networksettings/connman/qnetworksettingsservice_p.h6
-rw-r--r--src/networksettings/qnetworksettingsmanager.cpp42
-rw-r--r--src/networksettings/qnetworksettingsservice.cpp23
-rw-r--r--src/networksettings/qnetworksettingsservice.h5
-rw-r--r--src/settingsui/display/Display.qml2
8 files changed, 87 insertions, 11 deletions
diff --git a/.qmake.conf b/.qmake.conf
index fe90daf..c672f20 100644
--- a/.qmake.conf
+++ b/.qmake.conf
@@ -1,3 +1,3 @@
load(qt_build_config)
-MODULE_VERSION=5.12.5
+MODULE_VERSION=5.13.1
CMAKE_MODULE_TESTS=-
diff --git a/src/networksettings/connman/connmancommon.h b/src/networksettings/connman/connmancommon.h
index 442730f..3c8aa67 100644
--- a/src/networksettings/connman/connmancommon.h
+++ b/src/networksettings/connman/connmancommon.h
@@ -39,6 +39,7 @@
#define PropertyType QStringLiteral("Type")
#define PropertyConnected QStringLiteral("Connected")
#define PropertyPowered QStringLiteral("Powered")
+#define PropertyAutoConnect QStringLiteral("AutoConnect")
#define AttributeWifi QStringLiteral("wifi")
#define AttributeEthernet QStringLiteral("ethernet")
diff --git a/src/networksettings/connman/qnetworksettingsservice_p.cpp b/src/networksettings/connman/qnetworksettingsservice_p.cpp
index b56c1e6..2523e81 100644
--- a/src/networksettings/connman/qnetworksettingsservice_p.cpp
+++ b/src/networksettings/connman/qnetworksettingsservice_p.cpp
@@ -260,6 +260,19 @@ QNetworkSettingsServicePrivate::QNetworkSettingsServicePrivate(const QString& id
this, SLOT(propertiesUpdated(QDBusPendingCallWatcher*)));
}
+void QNetworkSettingsServicePrivate::setAutoConnect(bool autoconnect)
+{
+ if (m_service) {
+ m_service->SetProperty(PropertyAutoConnect, QDBusVariant(QVariant(autoconnect)));
+ m_autoConnect = autoconnect;
+ }
+}
+
+bool QNetworkSettingsServicePrivate::autoConnect() const
+{
+ return m_autoConnect;
+}
+
void QNetworkSettingsServicePrivate::setupIpv6Config()
{
QVariantMap param;
@@ -440,6 +453,10 @@ void QNetworkSettingsServicePrivate::updateProperty(const QString& key, const QV
}
}
}
+ else if (key == PropertyAutoConnect) {
+ m_autoConnect = qdbus_cast<bool>(val);
+ emit q->autoConnectChanged();
+ }
}
void QNetworkSettingsServicePrivate::setupConfiguration(const QVariantMap &properties)
diff --git a/src/networksettings/connman/qnetworksettingsservice_p.h b/src/networksettings/connman/qnetworksettingsservice_p.h
index 362aea4..9190e2d 100644
--- a/src/networksettings/connman/qnetworksettingsservice_p.h
+++ b/src/networksettings/connman/qnetworksettingsservice_p.h
@@ -68,7 +68,8 @@ private:
void updateProperty(const QString& key, const QVariant& value);
protected:
- void setAutoConnect(const bool autoconnect);
+ void setAutoConnect(bool autoconnect);
+ bool autoConnect() const;
void setupIpv4Config();
void setupIpv6Config();
void setupNameserversConfig();
@@ -91,7 +92,8 @@ protected:
QNetworkSettingsWireless m_wifiConfig;
QNetworkSettingsType m_type;
NetConnmanServiceInterface *m_service;
- bool m_placeholderState;
+ bool m_placeholderState = false;
+ bool m_autoConnect = false;
};
QT_END_NAMESPACE
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<QNetworkSettingsService*> services = qobject_cast<QNetworkSettingsServiceModel*>(manager->services()->sourceModel())->getModel();
+
+ for (const auto &service : services) {
+ qDebug() << service->name();
+ }
+ }
+
+
+ void WifiHandler::interfacesChanged()
+ {
+ QList<QNetworkSettingsInterface*> 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
*/
diff --git a/src/networksettings/qnetworksettingsservice.cpp b/src/networksettings/qnetworksettingsservice.cpp
index 150b54d..0983c0d 100644
--- a/src/networksettings/qnetworksettingsservice.cpp
+++ b/src/networksettings/qnetworksettingsservice.cpp
@@ -113,6 +113,14 @@ QT_BEGIN_NAMESPACE
*/
/*!
+ \property QNetworkSettingsService::autoConnect
+ \brief Holds autoconnect property for this service.
+
+ Autoconnect property determines whether the service connects automatically
+ when it is available.
+*/
+
+/*!
\fn QNetworkSettingsService::connectionStateCleared()
This signal is emitted when the connection state is cleared.
@@ -187,16 +195,21 @@ QString QNetworkSettingsService::name() const
}
/*!
- \qmlmethod void NetworkService::setAutoConnect(bool auto)
+ Sets automatic connections to the network service to \a autoconnect.
*/
+void QNetworkSettingsService::setAutoConnect(const bool autoconnect)
+{
+ Q_D(QNetworkSettingsService);
+ d->setAutoConnect(autoconnect);
+}
/*!
- Sets automatic connections to the network service to
- \a autoconnect.
+ Returns the automatic connection status of the network service.
*/
-void QNetworkSettingsService::setAutoConnect(const bool autoconnect)
+bool QNetworkSettingsService::autoConnect() const
{
- Q_UNUSED(autoconnect);
+ Q_D(const QNetworkSettingsService);
+ return d->autoConnect();
}
/*!
diff --git a/src/networksettings/qnetworksettingsservice.h b/src/networksettings/qnetworksettingsservice.h
index 6f5a87e..dd9d52a 100644
--- a/src/networksettings/qnetworksettingsservice.h
+++ b/src/networksettings/qnetworksettingsservice.h
@@ -50,6 +50,7 @@ class Q_DECL_EXPORT QNetworkSettingsService : public QObject
Q_PROPERTY(QNetworkSettingsWireless* wirelessConfig READ wirelessConfig NOTIFY wirelessChanged)
Q_PROPERTY(QAbstractItemModel* domains READ domains NOTIFY domainsChanged)
Q_PROPERTY(QAbstractItemModel* nameservers READ nameservers NOTIFY nameserversChanged)
+ Q_PROPERTY(bool autoConnect READ autoConnect WRITE setAutoConnect NOTIFY autoConnectChanged)
public:
explicit QNetworkSettingsService(const QString& aServiceId, QObject* parent = Q_NULLPTR);
@@ -66,7 +67,8 @@ public:
void setPlaceholderState(bool placeholderState);
bool placeholderState() const;
- Q_INVOKABLE void setAutoConnect(const bool autoconnect);
+ Q_INVOKABLE void setAutoConnect(bool autoconnect);
+ Q_INVOKABLE bool autoConnect() const;
Q_INVOKABLE void setupIpv4Config();
Q_INVOKABLE void setupIpv6Config();
Q_INVOKABLE void setupNameserversConfig();
@@ -78,6 +80,7 @@ public:
Q_INVOKABLE void disconnectService();
Q_INVOKABLE void removeService();
Q_SIGNALS:
+ void autoConnectChanged();
void nameChanged();
void stateChanged();
void typeChanged();
diff --git a/src/settingsui/display/Display.qml b/src/settingsui/display/Display.qml
index a30e9eb..97d05a2 100644
--- a/src/settingsui/display/Display.qml
+++ b/src/settingsui/display/Display.qml
@@ -94,7 +94,7 @@ Item {
height: pluginMain.fieldTextHeight
font.pixelSize: pluginMain.subTitleFontSize
font.family: appFont
- text: qsTr("Physical screen size")
+ text: qsTr("Physical screen size in millimeters")
Layout.preferredWidth: root.width * 0.3
Layout.alignment: Qt.AlignVCenter
wrapMode: Label.WordWrap