summaryrefslogtreecommitdiffstats
path: root/src/networksettings
diff options
context:
space:
mode:
Diffstat (limited to 'src/networksettings')
-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/qnetworksettingsservice.cpp24
-rw-r--r--src/networksettings/qnetworksettingsservice.h5
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();