diff options
author | Kari Hormi <kari.hormi@qt.io> | 2019-06-20 12:47:35 +0300 |
---|---|---|
committer | Kari Hormi <kari.hormi@qt.io> | 2019-06-20 13:48:00 +0300 |
commit | 5afba8ed9e97a613b170aee9cd8e6499282b8d4a (patch) | |
tree | c4d0903083db633bfaedffa25fb241291fd414a4 | |
parent | de5d369c83df0f1de551d7766164c4c81e4b2a70 (diff) |
Implement network auto connection property
Task-number: QTBUG-76537
Change-Id: I9388854a65706c643de2f184e6e680458af7bc1e
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
4 files changed, 33 insertions, 9 deletions
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<bool>(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 @@ -113,6 +113,15 @@ QT_BEGIN_NAMESPACE */ /*! + \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() This signal is emitted when the connection state is cleared. @@ -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) { @@ -201,6 +205,15 @@ void QNetworkSettingsService::setAutoConnect(const bool 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 \brief Holds the state of this service. 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(); |