diff options
Diffstat (limited to 'src')
5 files changed, 45 insertions, 8 deletions
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/qnetworksettingsservice.cpp b/src/networksettings/qnetworksettingsservice.cpp index 150b54d..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,16 +196,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. + Return 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(); |