From 5afba8ed9e97a613b170aee9cd8e6499282b8d4a Mon Sep 17 00:00:00 2001 From: Kari Hormi Date: Thu, 20 Jun 2019 12:47:35 +0300 Subject: Implement network auto connection property Task-number: QTBUG-76537 Change-Id: I9388854a65706c643de2f184e6e680458af7bc1e Reviewed-by: Ville Voutilainen --- .../connman/qnetworksettingsservice_p.cpp | 11 ++++++++-- .../connman/qnetworksettingsservice_p.h | 1 + src/networksettings/qnetworksettingsservice.cpp | 25 ++++++++++++++++------ src/networksettings/qnetworksettingsservice.h | 5 ++++- 4 files changed, 33 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/networksettings/connman/qnetworksettingsservice_p.cpp b/src/networksettings/connman/qnetworksettingsservice_p.cpp index f1073e7..2523e81 100644 --- a/src/networksettings/connman/qnetworksettingsservice_p.cpp +++ b/src/networksettings/connman/qnetworksettingsservice_p.cpp @@ -262,8 +262,15 @@ QNetworkSettingsServicePrivate::QNetworkSettingsServicePrivate(const QString& id void QNetworkSettingsServicePrivate::setAutoConnect(bool autoconnect) { - if (m_service) + if (m_service) { m_service->SetProperty(PropertyAutoConnect, QDBusVariant(QVariant(autoconnect))); + m_autoConnect = autoconnect; + } +} + +bool QNetworkSettingsServicePrivate::autoConnect() const +{ + return m_autoConnect; } void QNetworkSettingsServicePrivate::setupIpv6Config() @@ -448,7 +455,7 @@ void QNetworkSettingsServicePrivate::updateProperty(const QString& key, const QV } else if (key == PropertyAutoConnect) { m_autoConnect = qdbus_cast(val); - //TODO: create appropriate signals for when the property has changed + emit q->autoConnectChanged(); } } diff --git a/src/networksettings/connman/qnetworksettingsservice_p.h b/src/networksettings/connman/qnetworksettingsservice_p.h index c62bcf2..9190e2d 100644 --- a/src/networksettings/connman/qnetworksettingsservice_p.h +++ b/src/networksettings/connman/qnetworksettingsservice_p.h @@ -69,6 +69,7 @@ private: protected: void setAutoConnect(bool autoconnect); + bool autoConnect() const; void setupIpv4Config(); void setupIpv6Config(); void setupNameserversConfig(); diff --git a/src/networksettings/qnetworksettingsservice.cpp b/src/networksettings/qnetworksettingsservice.cpp index 3bd1c26..fd21140 100644 --- a/src/networksettings/qnetworksettingsservice.cpp +++ b/src/networksettings/qnetworksettingsservice.cpp @@ -112,6 +112,15 @@ QT_BEGIN_NAMESPACE server (DNS) addresses associated with this service. */ +/*! + \property QNetworkSettingsService::autoConnect + \readwrite + \brief Holds autoconnect property for this service. + + Autoconnect property determines whether the service connects automatically + when it is available. +*/ + /*! \fn QNetworkSettingsService::connectionStateCleared() @@ -187,12 +196,7 @@ QString QNetworkSettingsService::name() const } /*! - \qmlmethod void NetworkService::setAutoConnect(bool auto) -*/ - -/*! - Sets automatic connections to the network service to - \a autoconnect. + Sets automatic connections to the network service to \a autoconnect. */ void QNetworkSettingsService::setAutoConnect(const bool autoconnect) { @@ -200,6 +204,15 @@ void QNetworkSettingsService::setAutoConnect(const bool autoconnect) d->setAutoConnect(autoconnect); } +/*! + Return automatic connection status of the network service. +*/ +bool QNetworkSettingsService::autoConnect() const +{ + Q_D(const QNetworkSettingsService); + return d->autoConnect(); +} + /*! \qmlproperty enumeration NetworkService::state \readonly 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(); -- cgit v1.2.3