summaryrefslogtreecommitdiffstats
path: root/src/networksettings
diff options
context:
space:
mode:
Diffstat (limited to 'src/networksettings')
-rw-r--r--src/networksettings/connman/qnetworksettingsinterface_p.cpp1
-rw-r--r--src/networksettings/connman/qnetworksettingsinterface_p.h2
-rw-r--r--src/networksettings/connman/qnetworksettingsmanager_p.cpp73
-rw-r--r--src/networksettings/connman/qnetworksettingsmanager_p.h7
-rw-r--r--src/networksettings/connman/qnetworksettingsservice_p.cpp1
-rw-r--r--src/networksettings/connman/qnetworksettingsservice_p.h5
-rw-r--r--src/networksettings/connman/qnetworksettingsuseragent_p.h2
-rw-r--r--src/networksettings/networksettings.pro1
-rw-r--r--src/networksettings/qnetworksettings.cpp259
-rw-r--r--src/networksettings/qnetworksettings.h273
-rw-r--r--src/networksettings/qnetworksettingsaddressmodel.h4
-rw-r--r--src/networksettings/qnetworksettingsinterface.h2
-rw-r--r--src/networksettings/qnetworksettingsinterfacemodel.h2
-rw-r--r--src/networksettings/qnetworksettingsmanager.cpp10
-rw-r--r--src/networksettings/qnetworksettingsmanager.h19
-rw-r--r--src/networksettings/qnetworksettingsservice.h2
-rw-r--r--src/networksettings/qnetworksettingsservicemodel.cpp64
-rw-r--r--src/networksettings/qnetworksettingsservicemodel.h14
-rw-r--r--src/networksettings/qnetworksettingsuseragent.h2
-rw-r--r--src/networksettings/wpasupplicant/qnetworksettingsmanager_p.h2
-rw-r--r--src/networksettings/wpasupplicant/qnetworksettingsservice_p.h4
21 files changed, 471 insertions, 278 deletions
diff --git a/src/networksettings/connman/qnetworksettingsinterface_p.cpp b/src/networksettings/connman/qnetworksettingsinterface_p.cpp
index 3525aa7..83ab73a 100644
--- a/src/networksettings/connman/qnetworksettingsinterface_p.cpp
+++ b/src/networksettings/connman/qnetworksettingsinterface_p.cpp
@@ -33,6 +33,7 @@
QNetworkSettingsInterfacePrivate::QNetworkSettingsInterfacePrivate(QNetworkSettingsInterface* parent)
: QObject(parent)
+ , m_technology(Q_NULLPTR)
,q_ptr(parent)
{
diff --git a/src/networksettings/connman/qnetworksettingsinterface_p.h b/src/networksettings/connman/qnetworksettingsinterface_p.h
index 7f5ee7b..eabe610 100644
--- a/src/networksettings/connman/qnetworksettingsinterface_p.h
+++ b/src/networksettings/connman/qnetworksettingsinterface_p.h
@@ -66,7 +66,7 @@ class ConnmanSettingsInterface : public QNetworkSettingsInterface
{
Q_OBJECT
public:
- ConnmanSettingsInterface(const QString& path, const QVariantMap& properties, QObject *parent = nullptr)
+ ConnmanSettingsInterface(const QString& path, const QVariantMap& properties, QObject *parent = Q_NULLPTR)
:QNetworkSettingsInterface(parent)
{
if (d_ptr)
diff --git a/src/networksettings/connman/qnetworksettingsmanager_p.cpp b/src/networksettings/connman/qnetworksettingsmanager_p.cpp
index 875be9b..22e8005 100644
--- a/src/networksettings/connman/qnetworksettingsmanager_p.cpp
+++ b/src/networksettings/connman/qnetworksettingsmanager_p.cpp
@@ -37,6 +37,11 @@
QNetworkSettingsManagerPrivate::QNetworkSettingsManagerPrivate(QNetworkSettingsManager *parent)
:QObject(parent)
,q_ptr(parent)
+ , m_interfaceModel(Q_NULLPTR)
+ , m_serviceModel(Q_NULLPTR)
+ , m_serviceFilter(Q_NULLPTR)
+ , m_manager(Q_NULLPTR)
+ , m_agent(Q_NULLPTR)
{
qDBusRegisterMetaType<ConnmanMapStruct>();
qDBusRegisterMetaType<ConnmanMapStructList>();
@@ -54,13 +59,13 @@ QNetworkSettingsManagerPrivate::QNetworkSettingsManagerPrivate(QNetworkSettingsM
//List technologies
QDBusPendingReply<ConnmanMapStructList> reply = m_manager->GetTechnologies();
QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(reply, this);
- connect(watcher, SIGNAL(finished(QDBusPendingCallWatcher*)),
- this, SLOT(getTechnologiesFinished(QDBusPendingCallWatcher*)));
+ connect(watcher, &QDBusPendingCallWatcher::finished,
+ this, &QNetworkSettingsManagerPrivate::getTechnologiesFinished);
reply = m_manager->GetServices();
watcher = new QDBusPendingCallWatcher(reply, this);
- connect(watcher, SIGNAL(finished(QDBusPendingCallWatcher*)),
- this, SLOT(getServicesFinished(QDBusPendingCallWatcher*)));
+ connect(watcher, &QDBusPendingCallWatcher::finished,
+ this, &QNetworkSettingsManagerPrivate::getServicesFinished);
connect(m_manager, &NetConnmanManagerInterface::ServicesChanged, this, &QNetworkSettingsManagerPrivate::onServicesChanged);
@@ -93,25 +98,7 @@ void QNetworkSettingsManagerPrivate::getServicesFinished(QDBusPendingCallWatcher
foreach (const ConnmanMapStruct &object, reply.value()) {
const QString servicePath = object.objectPath.path();
- QNetworkSettingsService *service = new QNetworkSettingsService(servicePath, this);
- m_serviceModel->append(service);
-
- //Update status property
- QString n = qdbus_cast<QString>(object.propertyMap[PropertyName]);
- QString t = qdbus_cast<QString>(object.propertyMap[PropertyType]);
- QString s = qdbus_cast<QString>(object.propertyMap[PropertyState]);
-
- QNetworkSettingsType type;
- t >> type;
- QNetworkSettingsState state;
- s >> state;
-
- foreach (QNetworkSettingsInterface* item, m_interfaceModel.getModel()) {
- ConnmanSettingsInterface* technology = qobject_cast<ConnmanSettingsInterface*>(item);
- if (technology->name() == n && technology->type() == type.type()) {
- technology->setState(state.state());
- }
- }
+ handleNewService(servicePath);
}
emit q->servicesChanged();
}
@@ -156,9 +143,26 @@ void QNetworkSettingsManagerPrivate::onServicesChanged(ConnmanMapStructList chan
if (!found)
newServices.append(map.objectPath.path());
}
+
foreach (QString newService, newServices) {
- QNetworkSettingsService *service = new QNetworkSettingsService(newService, this);
+ handleNewService(newService);
+ }
+}
+
+void QNetworkSettingsManagerPrivate::handleNewService(const QString &servicePath)
+{
+ Q_Q(QNetworkSettingsManager);
+
+ QNetworkSettingsService *service = new QNetworkSettingsService(servicePath, this);
+
+ if (service->name().length() > 0 && service->type() != QNetworkSettingsType::Unknown) {
m_serviceModel->append(service);
+ emit q->servicesChanged();
+ }
+ else {
+ //Service name or type not set, wait for update
+ connect(service, &QNetworkSettingsService::nameChanged, this, &QNetworkSettingsManagerPrivate::serviceReady);
+ connect(service, &QNetworkSettingsService::typeChanged, this, &QNetworkSettingsManagerPrivate::serviceReady);
}
}
@@ -166,3 +170,24 @@ void QNetworkSettingsManagerPrivate::setUserAgent(QNetworkSettingsUserAgent *age
{
m_agent = agent;
}
+
+void QNetworkSettingsManagerPrivate::serviceReady()
+{
+ Q_Q(QNetworkSettingsManager);
+
+ QNetworkSettingsService* service = qobject_cast<QNetworkSettingsService*>(sender());
+ if (service->name().length() > 0 && service->type() != QNetworkSettingsType::Unknown) {
+ service->disconnect(this);
+ m_serviceModel->append(service);
+ emit q->servicesChanged();
+
+ //Update the interface state accordingly
+ foreach (QNetworkSettingsInterface* item, m_interfaceModel.getModel()) {
+ ConnmanSettingsInterface* technology = qobject_cast<ConnmanSettingsInterface*>(item);
+ if (technology->name() == service->name() && technology->type() == service->type()) {
+ technology->setState(technology->state());
+ }
+ }
+
+ }
+}
diff --git a/src/networksettings/connman/qnetworksettingsmanager_p.h b/src/networksettings/connman/qnetworksettingsmanager_p.h
index cb42654..b6e23ab 100644
--- a/src/networksettings/connman/qnetworksettingsmanager_p.h
+++ b/src/networksettings/connman/qnetworksettingsmanager_p.h
@@ -38,6 +38,7 @@
class NetConnmanManagerInterface;
class QNetworkSettingsServiceModel;
class QNetworkSettingsServiceFilter;
+class QNetworkSettingsService;
class QNetworkSettingsManagerPrivate : public QObject
{
@@ -47,13 +48,15 @@ public:
explicit QNetworkSettingsManagerPrivate(QNetworkSettingsManager *parent);
QNetworkSettingsManager *q_ptr;
void setUserAgent(QNetworkSettingsUserAgent *agent);
- QNetworkSettingsUserAgent *getUserAgent() {return m_agent;}
+ QNetworkSettingsUserAgent *userAgent() {return m_agent;}
public slots:
void getServicesFinished(QDBusPendingCallWatcher *watcher);
void getTechnologiesFinished(QDBusPendingCallWatcher *watcher);
void requestInput(const QString& service, const QString& type);
void onServicesChanged(ConnmanMapStructList changed, const QList<QDBusObjectPath> &removed);
-
+ void serviceReady();
+private:
+ void handleNewService(const QString& servicePath);
protected:
QNetworkSettingsInterfaceModel m_interfaceModel;
QNetworkSettingsServiceModel *m_serviceModel;
diff --git a/src/networksettings/connman/qnetworksettingsservice_p.cpp b/src/networksettings/connman/qnetworksettingsservice_p.cpp
index 8a7b2cf..e8aabff 100644
--- a/src/networksettings/connman/qnetworksettingsservice_p.cpp
+++ b/src/networksettings/connman/qnetworksettingsservice_p.cpp
@@ -362,6 +362,7 @@ void QNetworkSettingsServicePrivate::updateProperty(const QString& key, const QV
else if (key == PropertyType) {
QString value = qdbus_cast<QString>(val);
value >> m_type;
+ emit q->typeChanged();
}
else if (key == PropertyStrength) {
m_wifiConfig.setSignalStrength(val.toInt());
diff --git a/src/networksettings/connman/qnetworksettingsservice_p.h b/src/networksettings/connman/qnetworksettingsservice_p.h
index e9166d7..58adbb9 100644
--- a/src/networksettings/connman/qnetworksettingsservice_p.h
+++ b/src/networksettings/connman/qnetworksettingsservice_p.h
@@ -29,10 +29,11 @@
#ifndef QNETWORKSETTINGSSERVICEPRIVATE_H
#define QNETWORKSETTINGSSERVICEPRIVATE_H
-#include <QtDBus>
#include "qnetworksettingsservice.h"
#include "qnetworksettings.h"
+class QDBusPendingCallWatcher;
+class QDBusVariant;
class NetConnmanServiceInterface;
class QNetworkSettingsServicePrivate : public QObject
@@ -40,7 +41,7 @@ class QNetworkSettingsServicePrivate : public QObject
Q_OBJECT
Q_DECLARE_PUBLIC(QNetworkSettingsService)
public:
- QNetworkSettingsServicePrivate(const QString& aPath, QNetworkSettingsService *parent = nullptr);
+ QNetworkSettingsServicePrivate(const QString& aPath, QNetworkSettingsService *parent = Q_NULLPTR);
QNetworkSettingsService *q_ptr;
private slots:
diff --git a/src/networksettings/connman/qnetworksettingsuseragent_p.h b/src/networksettings/connman/qnetworksettingsuseragent_p.h
index ecce5ae..ff8c1d0 100644
--- a/src/networksettings/connman/qnetworksettingsuseragent_p.h
+++ b/src/networksettings/connman/qnetworksettingsuseragent_p.h
@@ -50,7 +50,7 @@ class QNetworkSettingsUserAgentPrivate : public QDBusAbstractAdaptor
Q_CLASSINFO("D-Bus Interface", "net.connman.Agent")
Q_DECLARE_PUBLIC(QNetworkSettingsUserAgent)
public:
- QNetworkSettingsUserAgentPrivate(QNetworkSettingsUserAgent *parent = nullptr);
+ QNetworkSettingsUserAgentPrivate(QNetworkSettingsUserAgent *parent = Q_NULLPTR);
void setUserCredentials(const QString& aUsername, const QString& aPassword);
void cancel();
void release();
diff --git a/src/networksettings/networksettings.pro b/src/networksettings/networksettings.pro
index 9ae1bb3..db2ce06 100644
--- a/src/networksettings/networksettings.pro
+++ b/src/networksettings/networksettings.pro
@@ -19,6 +19,7 @@ else {
# Input
SOURCES += \
qnetworksettingsinterfacemodel.cpp \
+ qnetworksettings.cpp \
qnetworksettingsmanager.cpp \
qnetworksettingsaddressmodel.cpp \
qnetworksettingsservicemodel.cpp \
diff --git a/src/networksettings/qnetworksettings.cpp b/src/networksettings/qnetworksettings.cpp
new file mode 100644
index 0000000..fae1b7d
--- /dev/null
+++ b/src/networksettings/qnetworksettings.cpp
@@ -0,0 +1,259 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Device Utilities module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:GPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3 or (at your option) any later version
+** approved by the KDE Free Qt Foundation. The licenses are as published by
+** the Free Software Foundation and appearing in the file LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qnetworksettings.h"
+
+QNetworkSettingsState::QNetworkSettingsState(States state, QObject *parent)
+ : QObject(parent)
+ , m_state(state)
+{
+}
+
+QNetworkSettingsState::QNetworkSettingsState(QObject *parent)
+ : QObject(parent)
+ , m_state(Undefined)
+{
+}
+
+QNetworkSettingsState::States QNetworkSettingsState::state() const {
+ return m_state;
+}
+
+void QNetworkSettingsState::setState(const States state) {
+ m_state = state;
+ emit stateChanged();
+}
+
+QNetworkSettingsType::QNetworkSettingsType(Types type, QObject *parent)
+ : QObject(parent)
+ , m_type(type)
+{
+ m_type = type;
+}
+
+QNetworkSettingsType::QNetworkSettingsType(QObject *parent)
+ : QObject(parent)
+{
+ m_type = Unknown;
+}
+
+QNetworkSettingsType::Types QNetworkSettingsType::type() const {
+ return m_type;
+}
+
+void QNetworkSettingsType::setType(const Types type) {
+ m_type = type;
+ emit typeChanged();
+}
+
+QNetworkSettingsIPv4::QNetworkSettingsIPv4(QObject *parent)
+ : QObject(parent)
+{
+}
+
+QString QNetworkSettingsIPv4::address() const {
+ return m_address;
+}
+void QNetworkSettingsIPv4::setAddress(const QString& address) {
+ m_address = address;
+ emit addressChanged();
+}
+
+QString QNetworkSettingsIPv4::gateway() const {
+ return m_gateway;
+}
+
+void QNetworkSettingsIPv4::setGateway(const QString& gateway) {
+ m_gateway = gateway;
+ emit gatewayChanged();
+}
+
+QNetworkSettingsIPv4::MethodType QNetworkSettingsIPv4::method() const {
+ return m_method;
+}
+
+void QNetworkSettingsIPv4::setMethod(const MethodType method) {
+ m_method = method;
+ emit methodChanged();
+}
+
+QString QNetworkSettingsIPv4::mask() const {
+ return m_mask;
+}
+
+void QNetworkSettingsIPv4::setMask(const QString& mask) {
+ m_mask = mask;
+ emit maskChanged();
+}
+
+QNetworkSettingsIPv6::QNetworkSettingsIPv6(QObject *parent)
+ : QObject(parent)
+{
+}
+
+QString QNetworkSettingsIPv6::address() const {
+ return m_address;
+}
+
+void QNetworkSettingsIPv6::setAddress(const QString& address) {
+ m_address = address;
+ emit addressChanged();
+}
+
+QString QNetworkSettingsIPv6::gateway() const {
+ return m_gateway;
+}
+
+void QNetworkSettingsIPv6::setGateway(const QString& gateway) {
+ m_gateway = gateway;
+ emit gatewayChanged();
+}
+
+QNetworkSettingsIPv6::MethodType QNetworkSettingsIPv6::method() const {
+ return m_method;
+}
+
+void QNetworkSettingsIPv6::setMethod(const MethodType method) {
+ m_method = method;
+ emit methodChanged();
+}
+
+QNetworkSettingsIPv6::PrivacyType QNetworkSettingsIPv6::privacy() const {
+ return m_privacy;
+}
+
+void QNetworkSettingsIPv6::setPrivacy(const PrivacyType privacy) {
+ m_privacy = privacy;
+ emit privacyChanged();
+}
+
+int QNetworkSettingsIPv6::prefixLength() const {
+ return m_prefixLength;
+}
+
+void QNetworkSettingsIPv6::setPrefixLength(const int& prefixLength) {
+ m_prefixLength = prefixLength;
+ emit prefixLengthChanged();
+}
+
+QNetworkSettingsProxy::QNetworkSettingsProxy(QObject *parent)
+ : QObject(parent)
+{
+
+}
+
+QUrl QNetworkSettingsProxy::url() const {
+ return m_url;
+}
+
+void QNetworkSettingsProxy::setUrl(const QUrl& url) {
+ m_url = url;
+ emit urlChanged();
+}
+
+QAbstractItemModel* QNetworkSettingsProxy::servers(void) {
+ return &m_servers;
+}
+
+void QNetworkSettingsProxy::setServers(const QStringList& servers) {
+ m_servers.setStringList(servers);
+ emit serversChanged();
+}
+
+QStringList QNetworkSettingsProxy::servers() const {
+ return m_servers.stringList();
+}
+
+QAbstractItemModel* QNetworkSettingsProxy::excludes(void) {
+ return &m_excludes;
+}
+
+QStringList QNetworkSettingsProxy::excludes() const {
+ return m_excludes.stringList();
+}
+
+void QNetworkSettingsProxy::setExcludes(const QStringList& excludes) {
+ m_excludes.setStringList(excludes);
+ emit excludesChanged();
+}
+
+QNetworkSettingsProxy::MethodType QNetworkSettingsProxy::method(void) const {
+ return m_method;
+}
+
+void QNetworkSettingsProxy::setMethod(const MethodType& method) {
+ m_method = method;
+ emit methodChanged();
+}
+
+QNetworkSettingsWireless::QNetworkSettingsWireless(QObject* parent)
+ : QObject(parent) {
+}
+
+bool QNetworkSettingsWireless::supportsSecurity(SecurityFlags security) {
+ if (m_securityFlags & security) {
+ return true;
+ }
+ return false;
+}
+
+bool QNetworkSettingsWireless::hidden() const {
+ return m_hidden;
+}
+
+void QNetworkSettingsWireless::setHidden(const bool hidden) {
+ m_hidden = hidden;
+ emit hiddenChanged();
+}
+
+int QNetworkSettingsWireless::signalStrength() const {
+ return m_signalStrength;
+}
+
+void QNetworkSettingsWireless::setSignalStrength(const int signalStrength) {
+ m_signalStrength = signalStrength;
+ emit signalStrengthChanged();
+}
+
+void QNetworkSettingsWireless::setSecurity(const SecurityFlags security) {
+ if (security == None) {
+ m_securityFlags = None;
+ } else {
+ m_securityFlags |= security;
+ }
+}
+
+void QNetworkSettingsWireless::setOutOfRange(const bool aOutOfRange) {
+ m_isOutOfRange = aOutOfRange;
+ emit outOfRangeChanged();
+}
+
+bool QNetworkSettingsWireless::outOfRange() const {
+ return m_isOutOfRange;
+}
+
diff --git a/src/networksettings/qnetworksettings.h b/src/networksettings/qnetworksettings.h
index 858e7e9..5323f98 100644
--- a/src/networksettings/qnetworksettings.h
+++ b/src/networksettings/qnetworksettings.h
@@ -43,26 +43,11 @@ class Q_DECL_EXPORT QNetworkSettingsState : public QObject
public:
enum States {Idle, Failure, Association, Configuration, Ready, Disconnect, Online, Undefined};
- explicit QNetworkSettingsState(States state, QObject *parent = nullptr)
- : QObject(parent)
- {
- m_state = state;
- }
-
- explicit QNetworkSettingsState(QObject *parent = nullptr)
- : QObject(parent)
- {
- m_state = Undefined;
- }
-
- States state() const {
- return m_state;
- }
-
- void setState(const States state) {
- m_state = state;
- Q_EMIT stateChanged();
- }
+ explicit QNetworkSettingsState(States state, QObject *parent = Q_NULLPTR);
+ explicit QNetworkSettingsState(QObject *parent = Q_NULLPTR);
+
+ States state() const;
+ void setState(const States state);
Q_SIGNALS:
void stateChanged();
@@ -85,27 +70,11 @@ public:
Unknown
};
- explicit QNetworkSettingsType(Types type, QObject *parent = nullptr)
- : QObject(parent)
- {
- m_type = type;
- }
-
- explicit QNetworkSettingsType(QObject *parent = nullptr)
- : QObject(parent)
- {
- m_type = Unknown;
- }
-
+ explicit QNetworkSettingsType(Types type, QObject *parent = Q_NULLPTR);
+ explicit QNetworkSettingsType(QObject *parent = Q_NULLPTR);
- Types type() const {
- return m_type;
- }
-
- void setType(const Types type) {
- m_type = type;
- Q_EMIT typeChanged();
- }
+ Types type() const;
+ void setType(const Types type);
Q_SIGNALS:
void typeChanged();
@@ -124,48 +93,18 @@ class Q_DECL_EXPORT QNetworkSettingsIPv4 : public QObject
Q_PROPERTY(QString mask READ mask WRITE setMask NOTIFY maskChanged)
public:
- explicit QNetworkSettingsIPv4(QObject *parent = nullptr)
- : QObject(parent)
- {
-
- }
+ explicit QNetworkSettingsIPv4(QObject *parent = Q_NULLPTR);
enum MethodType {Dhcp, Manual, Off};
- QString address() const {
- return m_address;
- }
- void setAddress(const QString& adderess) {
- m_address = adderess;
- Q_EMIT addressChanged();
- }
-
- QString gateway() const {
- return m_gateway;
- }
-
- void setGateway(const QString& gateway) {
- m_gateway = gateway;
- Q_EMIT gatewayChanged();
- }
-
- MethodType method() const {
- return m_method;
- }
-
- void setMethod(const MethodType method) {
- m_method = method;
- Q_EMIT methodChanged();
- }
-
- QString mask() const {
- return m_mask;
- }
-
- void setMask(const QString& mask) {
- m_mask = mask;
- Q_EMIT maskChanged();
- }
+ QString address() const;
+ void setAddress(const QString& address);
+ QString gateway() const;
+ void setGateway(const QString& gateway);
+ MethodType method() const;
+ void setMethod(const MethodType method);
+ QString mask() const;
+ void setMask(const QString& mask);
Q_SIGNALS:
void addressChanged();
@@ -192,58 +131,21 @@ class Q_DECL_EXPORT QNetworkSettingsIPv6 : public QObject
Q_PROPERTY(int prefixLength READ prefixLength WRITE setPrefixLength NOTIFY prefixLengthChanged)
public:
- explicit QNetworkSettingsIPv6(QObject *parent = nullptr)
- : QObject(parent)
- {
-
- }
+ explicit QNetworkSettingsIPv6(QObject *parent = Q_NULLPTR);
enum MethodType {Auto, Manual, Off};
enum PrivacyType {Disabled, Enabled, Preferred};
- QString address() const {
- return m_address;
- }
- void setAddress(const QString& adderess) {
- m_address = adderess;
- Q_EMIT addressChanged();
- }
-
- QString gateway() const {
- return m_gateway;
- }
-
- void setGateway(const QString& gateway) {
- m_gateway = gateway;
- Q_EMIT gatewayChanged();
- }
-
- MethodType method() const {
- return m_method;
- }
-
- void setMethod(const MethodType method) {
- m_method = method;
- Q_EMIT methodChanged();
- }
-
- PrivacyType privacy() const {
- return m_privacy;
- }
-
- void setPrivacy(const PrivacyType privacy) {
- m_privacy = privacy;
- Q_EMIT privacyChanged();
- }
-
- int prefixLength() const {
- return m_prefixLength;
- }
-
- void setPrefixLength(const int& prefixLength) {
- m_prefixLength = prefixLength;
- Q_EMIT prefixLengthChanged();
- }
+ QString address() const;
+ void setAddress(const QString& address);
+ QString gateway() const;
+ void setGateway(const QString& gateway);
+ MethodType method() const;
+ void setMethod(const MethodType method);
+ PrivacyType privacy() const;
+ void setPrivacy(const PrivacyType privacy);
+ int prefixLength() const;
+ void setPrefixLength(const int& prefixLength);
Q_SIGNALS:
void addressChanged();
@@ -264,63 +166,25 @@ class Q_DECL_EXPORT QNetworkSettingsProxy : public QObject
{
Q_OBJECT
Q_ENUMS(MethodType)
-public:
Q_PROPERTY(QUrl url READ url WRITE setUrl NOTIFY urlChanged)
Q_PROPERTY(QAbstractItemModel* servers READ servers NOTIFY serversChanged)
Q_PROPERTY(QAbstractItemModel* excludes READ excludes NOTIFY excludesChanged)
Q_PROPERTY(MethodType method READ method WRITE setMethod NOTIFY methodChanged)
-
- explicit QNetworkSettingsProxy(QObject *parent=NULL)
- : QObject(parent)
- {
-
- }
+public:
+ explicit QNetworkSettingsProxy(QObject *parent = Q_NULLPTR);
enum MethodType {Direct, Auto, Manual};
- QUrl url() const {
- return m_url;
- }
-
- void setUrl(const QUrl& url) {
- m_url = url;
- Q_EMIT urlChanged();
- }
-
- QAbstractItemModel* servers(void) {
- return &m_servers;
- }
-
- void setServers(const QStringList& servers) {
- m_servers.setStringList(servers);
- Q_EMIT serversChanged();
- }
-
- QStringList servers() const {
- return m_servers.stringList();
- }
-
- QAbstractItemModel* excludes(void) {
- return &m_excludes;
- }
-
- QStringList excludes() const {
- return m_excludes.stringList();
- }
-
- void setExcludes(const QStringList& excludes) {
- m_excludes.setStringList(excludes);
- Q_EMIT excludesChanged();
- }
-
- MethodType method(void) const {
- return m_method;
- }
-
- void setMethod(const MethodType& method) {
- m_method = method;
- Q_EMIT methodChanged();
- }
+ QUrl url() const;
+ void setUrl(const QUrl& url);
+ QAbstractItemModel* servers();
+ void setServers(const QStringList& servers);
+ QStringList servers() const;
+ QAbstractItemModel* excludes();
+ QStringList excludes() const;
+ void setExcludes(const QStringList& excludes);
+ MethodType method() const;
+ void setMethod(const MethodType& method);
Q_SIGNALS:
void urlChanged();
@@ -337,58 +201,23 @@ private:
class Q_DECL_EXPORT QNetworkSettingsWireless : public QObject
{
Q_OBJECT
+ Q_ENUMS(SecurityFlags)
Q_PROPERTY(int signalStrength READ signalStrength WRITE setSignalStrength NOTIFY signalStrengthChanged)
Q_PROPERTY(bool hidden READ hidden NOTIFY hiddenChanged)
Q_PROPERTY(bool isOutOfRange READ outOfRange WRITE setOutOfRange NOTIFY outOfRangeChanged)
public:
- explicit QNetworkSettingsWireless(QObject* parent = nullptr) :
- QObject(parent) {
- }
+ explicit QNetworkSettingsWireless(QObject* parent = Q_NULLPTR);
enum SecurityFlags {None=1, WEP=2, WPA=4, WPA2=8};
- Q_INVOKABLE bool supportsSecurity(SecurityFlags security) {
- if (m_securityFlags & security) {
- return true;
- }
- return false;
- }
-
- bool hidden() const {
- return m_hidden;
- }
-
- void setHidden(const bool hidden) {
- m_hidden = hidden;
- Q_EMIT hiddenChanged();
- }
-
- int signalStrength() const {
- return m_signalStrength;
- }
-
- void setSignalStrength(const int signalStrength) {
- m_signalStrength = signalStrength;
- Q_EMIT signalStrengthChanged();
- }
-
- void setSecurity(const SecurityFlags security) {
- if (security == None) {
- m_securityFlags = None;
- }
- else {
- m_securityFlags |= security;
- }
- }
-
- void setOutOfRange(const bool aOutOfRange) {
- m_isOutOfRange = aOutOfRange;
- Q_EMIT outOfRangeChanged();
- }
-
- bool outOfRange() const {
- return m_isOutOfRange;
- }
+ Q_INVOKABLE bool supportsSecurity(SecurityFlags security);
+ bool hidden() const;
+ void setHidden(const bool hidden);
+ int signalStrength() const;
+ void setSignalStrength(const int signalStrength);
+ void setSecurity(const SecurityFlags security);
+ void setOutOfRange(const bool aOutOfRange);
+ bool outOfRange() const;
Q_SIGNALS:
void hiddenChanged();
diff --git a/src/networksettings/qnetworksettingsaddressmodel.h b/src/networksettings/qnetworksettingsaddressmodel.h
index e6ceb16..16d601d 100644
--- a/src/networksettings/qnetworksettingsaddressmodel.h
+++ b/src/networksettings/qnetworksettingsaddressmodel.h
@@ -36,8 +36,8 @@ class Q_DECL_EXPORT QNetworkSettingsAddressModel : public QStringListModel
Q_OBJECT
Q_PROPERTY(int count READ count NOTIFY countChanged)
public:
- explicit QNetworkSettingsAddressModel(QObject *parent = nullptr);
- explicit QNetworkSettingsAddressModel(const QStringList &strings, QObject *parent = nullptr);
+ explicit QNetworkSettingsAddressModel(QObject *parent = Q_NULLPTR);
+ explicit QNetworkSettingsAddressModel(const QStringList &strings, QObject *parent = Q_NULLPTR);
Q_INVOKABLE void append(const QString& address);
Q_INVOKABLE void remove(int index);
Q_INVOKABLE void resetChanges();
diff --git a/src/networksettings/qnetworksettingsinterface.h b/src/networksettings/qnetworksettingsinterface.h
index 7531c6f..a87626d 100644
--- a/src/networksettings/qnetworksettingsinterface.h
+++ b/src/networksettings/qnetworksettingsinterface.h
@@ -42,7 +42,7 @@ class Q_DECL_EXPORT QNetworkSettingsInterface : public QObject {
Q_PROPERTY(bool powered READ powered WRITE setPowered NOTIFY poweredChanged)
public:
- explicit QNetworkSettingsInterface(QObject* parent = nullptr);
+ explicit QNetworkSettingsInterface(QObject* parent = Q_NULLPTR);
QString name() const;
QNetworkSettingsState::States state();
QNetworkSettingsType::Types type();
diff --git a/src/networksettings/qnetworksettingsinterfacemodel.h b/src/networksettings/qnetworksettingsinterfacemodel.h
index 2be5280..2fc74bc 100644
--- a/src/networksettings/qnetworksettingsinterfacemodel.h
+++ b/src/networksettings/qnetworksettingsinterfacemodel.h
@@ -39,7 +39,7 @@ class Q_DECL_EXPORT QNetworkSettingsInterfaceModel : public QAbstractListModel
Q_OBJECT
public:
- explicit QNetworkSettingsInterfaceModel(QObject *parent = nullptr);
+ explicit QNetworkSettingsInterfaceModel(QObject *parent = Q_NULLPTR);
// from QAbstractItemModel
int rowCount(const QModelIndex & parent = QModelIndex()) const;
QVariant data(const QModelIndex & index, int role = Qt::DisplayRole) const;
diff --git a/src/networksettings/qnetworksettingsmanager.cpp b/src/networksettings/qnetworksettingsmanager.cpp
index 787a382..caf6057 100644
--- a/src/networksettings/qnetworksettingsmanager.cpp
+++ b/src/networksettings/qnetworksettingsmanager.cpp
@@ -39,19 +39,19 @@ QNetworkSettingsManager::QNetworkSettingsManager(QObject *parent) :
{
}
-QAbstractItemModel* QNetworkSettingsManager::services()
+QNetworkSettingsServiceFilter *QNetworkSettingsManager::services()
{
Q_D(QNetworkSettingsManager);
return d->m_serviceFilter;
}
-QAbstractItemModel* QNetworkSettingsManager::interfaces()
+QNetworkSettingsInterfaceModel *QNetworkSettingsManager::interfaces()
{
Q_D(QNetworkSettingsManager);
return &d->m_interfaceModel;
}
-QNetworkSettingsService* QNetworkSettingsManager::getService(const QString& name, const int type)
+QNetworkSettingsService* QNetworkSettingsManager::service(const QString& name, const int type)
{
Q_D(QNetworkSettingsManager);
@@ -69,8 +69,8 @@ void QNetworkSettingsManager::setUserAgent(QNetworkSettingsUserAgent *agent)
d->setUserAgent(agent);
}
-QNetworkSettingsUserAgent* QNetworkSettingsManager::getUserAgent()
+QNetworkSettingsUserAgent* QNetworkSettingsManager::userAgent()
{
Q_D(QNetworkSettingsManager);
- return d->getUserAgent();
+ return d->userAgent();
}
diff --git a/src/networksettings/qnetworksettingsmanager.h b/src/networksettings/qnetworksettingsmanager.h
index 6f80ec0..86a60c4 100644
--- a/src/networksettings/qnetworksettingsmanager.h
+++ b/src/networksettings/qnetworksettingsmanager.h
@@ -35,24 +35,27 @@
QT_FORWARD_DECLARE_CLASS(QNetworkSettingsManagerPrivate)
QT_FORWARD_DECLARE_CLASS(QNetworkSettingsService)
+QT_FORWARD_DECLARE_CLASS(QNetworkSettingsServiceModel)
QT_FORWARD_DECLARE_CLASS(QNetworkSettingsUserAgent)
+QT_FORWARD_DECLARE_CLASS(QNetworkSettingsServiceFilter)
+QT_FORWARD_DECLARE_CLASS(QNetworkSettingsInterfaceModel)
class Q_DECL_EXPORT QNetworkSettingsManager : public QObject
{
Q_OBJECT
Q_ENUMS(StateTypes NetworkTypeTypes)
- Q_PROPERTY(QAbstractItemModel* services READ services NOTIFY servicesChanged)
- Q_PROPERTY(QAbstractItemModel* interfaces READ interfaces NOTIFY interfacesChanged)
- Q_PROPERTY(QNetworkSettingsUserAgent* userAgent READ getUserAgent CONSTANT)
+ Q_PROPERTY(QNetworkSettingsServiceFilter* services READ services NOTIFY servicesChanged)
+ Q_PROPERTY(QNetworkSettingsInterfaceModel* interfaces READ interfaces NOTIFY interfacesChanged)
+ Q_PROPERTY(QNetworkSettingsUserAgent* userAgent READ userAgent CONSTANT)
public:
- explicit QNetworkSettingsManager(QObject* parent = nullptr);
- QAbstractItemModel* services();
- QAbstractItemModel* interfaces();
+ explicit QNetworkSettingsManager(QObject* parent = Q_NULLPTR);
+ QNetworkSettingsServiceFilter* services();
+ QNetworkSettingsInterfaceModel* interfaces();
void setUserAgent(QNetworkSettingsUserAgent *agent);
- QNetworkSettingsUserAgent* getUserAgent();
+ QNetworkSettingsUserAgent* userAgent();
- Q_INVOKABLE QNetworkSettingsService* getService(const QString& name, const int type);
+ Q_INVOKABLE QNetworkSettingsService* service(const QString& name, const int type);
Q_SIGNALS:
void servicesChanged();
diff --git a/src/networksettings/qnetworksettingsservice.h b/src/networksettings/qnetworksettingsservice.h
index 0a37cd7..89973a8 100644
--- a/src/networksettings/qnetworksettingsservice.h
+++ b/src/networksettings/qnetworksettingsservice.h
@@ -49,7 +49,7 @@ class Q_DECL_EXPORT QNetworkSettingsService : public QObject
Q_PROPERTY(QAbstractItemModel* domains READ domains NOTIFY domainsChanged)
Q_PROPERTY(QAbstractItemModel* nameservers READ nameservers NOTIFY nameserversChanged)
public:
- explicit QNetworkSettingsService(const QString& aServiceId, QObject* parent = nullptr);
+ explicit QNetworkSettingsService(const QString& aServiceId, QObject* parent = Q_NULLPTR);
QString id() const;
QString name() const;
diff --git a/src/networksettings/qnetworksettingsservicemodel.cpp b/src/networksettings/qnetworksettingsservicemodel.cpp
index 2755eda..ce8ea86 100644
--- a/src/networksettings/qnetworksettingsservicemodel.cpp
+++ b/src/networksettings/qnetworksettingsservicemodel.cpp
@@ -78,6 +78,7 @@ QVariant QNetworkSettingsServiceModel::data(const QModelIndex & index, int role)
void QNetworkSettingsServiceModel::append(QNetworkSettingsService* item)
{
item->setParent(this);
+ connectStateChanges(item);
beginResetModel();
m_items.append(item);
@@ -87,14 +88,24 @@ void QNetworkSettingsServiceModel::append(QNetworkSettingsService* item)
void QNetworkSettingsServiceModel::insert(int row, QNetworkSettingsService* item)
{
item->setParent(this);
-
+ connectStateChanges(item);
beginInsertRows(QModelIndex(), row, row);
m_items.insert(row, item);
endInsertRows();
}
+void QNetworkSettingsServiceModel::connectStateChanges(QNetworkSettingsService* item)
+{
+ connect(item, &QNetworkSettingsService::stateChanged, this, &QNetworkSettingsServiceModel::connectionStatusChanged);
+ QNetworkSettingsWireless* wireless = item->wirelessConfig();
+ if (wireless)
+ connect(wireless, &QNetworkSettingsWireless::signalStrengthChanged, this, &QNetworkSettingsServiceModel::signalStrengthChanged);
+}
+
void QNetworkSettingsServiceModel::remove(int row)
{
+ QNetworkSettingsService* item = m_items.at(row);
+ item->deleteLater();
beginRemoveRows(QModelIndex(), row, row);
m_items.removeAt(row);
endRemoveRows();
@@ -123,6 +134,34 @@ QList<QNetworkSettingsService*> QNetworkSettingsServiceModel::getModel()
return m_items;
}
+void QNetworkSettingsServiceModel::connectionStatusChanged()
+{
+ QNetworkSettingsService *s = qobject_cast<QNetworkSettingsService*>(sender());
+
+ int row = 0;
+ foreach (QNetworkSettingsService* item, m_items) {
+ if (item == s) {
+ updated(row);
+ break;
+ }
+ row++;
+ }
+
+}
+
+void QNetworkSettingsServiceModel::signalStrengthChanged()
+{
+ QNetworkSettingsWireless *s = qobject_cast<QNetworkSettingsWireless*>(sender());
+ int row = 0;
+ foreach (QNetworkSettingsService* item, m_items) {
+ if (item->wirelessConfig() == s) {
+ updated(row);
+ break;
+ }
+ row++;
+ }
+}
+
//Filter model
/*!
@@ -200,3 +239,26 @@ QVariant QNetworkSettingsServiceFilter::itemFromRow(const int row) const
return QVariant::fromValue(QStringLiteral(""));
}
+/*!
+ \qmlmethod int NetworkSettingsServiceFilter::activeRow()
+
+ Returns the connected service index in the model.
+ Returns negative number if no active connection is available.
+*/
+int QNetworkSettingsServiceFilter::activeRow() const
+{
+ QNetworkSettingsServiceModel* model = qobject_cast<QNetworkSettingsServiceModel*>(sourceModel());
+ QList<QNetworkSettingsService*> data = model->getModel();
+ int row = 0;
+ foreach (QNetworkSettingsService* item, data) {
+ if (item->type() == m_type &&
+ (item->state() == QNetworkSettingsState::Ready ||
+ item->state() == QNetworkSettingsState::Online)) {
+ QModelIndex idx = model->index(row, 0);
+ QModelIndex mapped = mapFromSource(idx);
+ return mapped.row();
+ }
+ row++;
+ }
+ return -1;
+}
diff --git a/src/networksettings/qnetworksettingsservicemodel.h b/src/networksettings/qnetworksettingsservicemodel.h
index a540ff5..c158ec4 100644
--- a/src/networksettings/qnetworksettingsservicemodel.h
+++ b/src/networksettings/qnetworksettingsservicemodel.h
@@ -37,7 +37,7 @@ class Q_DECL_EXPORT QNetworkSettingsServiceModel : public QAbstractListModel
{
Q_OBJECT
public:
- explicit QNetworkSettingsServiceModel(QObject *parent = nullptr);
+ explicit QNetworkSettingsServiceModel(QObject *parent = Q_NULLPTR);
virtual ~QNetworkSettingsServiceModel();
// from QAbstractItemModel
int rowCount(const QModelIndex & parent = QModelIndex()) const;
@@ -58,22 +58,30 @@ public:
Connected
};
+
+private Q_SLOTS:
+ void connectionStatusChanged();
+ void signalStrengthChanged();
+
private:
+ void connectStateChanges(QNetworkSettingsService* item);
+
QList<QNetworkSettingsService*> m_items;
QHash<int, QByteArray> m_roleNames;
};
-class QNetworkSettingsServiceFilter : public QSortFilterProxyModel
+class Q_DECL_EXPORT QNetworkSettingsServiceFilter : public QSortFilterProxyModel
{
Q_OBJECT
Q_PROPERTY(QNetworkSettingsType::Types type READ type WRITE setType NOTIFY typeChanged)
public:
- explicit QNetworkSettingsServiceFilter(QObject* parent = nullptr);
+ explicit QNetworkSettingsServiceFilter(QObject* parent = Q_NULLPTR);
virtual ~QNetworkSettingsServiceFilter();
bool filterAcceptsRow( int source_row, const QModelIndex& source_parent ) const override;
QNetworkSettingsType::Types type() const;
void setType(QNetworkSettingsType::Types type);
Q_INVOKABLE QVariant itemFromRow(const int row) const;
+ Q_INVOKABLE int activeRow() const;
Q_SIGNALS:
void typeChanged();
private:
diff --git a/src/networksettings/qnetworksettingsuseragent.h b/src/networksettings/qnetworksettingsuseragent.h
index e857fec..89b4d18 100644
--- a/src/networksettings/qnetworksettingsuseragent.h
+++ b/src/networksettings/qnetworksettingsuseragent.h
@@ -37,7 +37,7 @@ class Q_DECL_EXPORT QNetworkSettingsUserAgent : public QObject
{
Q_OBJECT
public:
- explicit QNetworkSettingsUserAgent(QObject *parent = nullptr);
+ explicit QNetworkSettingsUserAgent(QObject *parent = Q_NULLPTR);
Q_INVOKABLE void setUserCredentials(const QString& username, const QString& passphrase);
Q_INVOKABLE void cancelInput();
QString passPhrase() const;
diff --git a/src/networksettings/wpasupplicant/qnetworksettingsmanager_p.h b/src/networksettings/wpasupplicant/qnetworksettingsmanager_p.h
index d042ece..ebb4667 100644
--- a/src/networksettings/wpasupplicant/qnetworksettingsmanager_p.h
+++ b/src/networksettings/wpasupplicant/qnetworksettingsmanager_p.h
@@ -51,7 +51,7 @@ public:
void disconnectNetwork();
QString call(const QString &command);
bool checkedCall(const QString &command);
- QNetworkSettingsUserAgent *getUserAgent() {return m_agent;}
+ QNetworkSettingsUserAgent *userAgent() {return m_agent;}
protected:
bool event(QEvent *event);
diff --git a/src/networksettings/wpasupplicant/qnetworksettingsservice_p.h b/src/networksettings/wpasupplicant/qnetworksettingsservice_p.h
index 06fb132..6ed6d5a 100644
--- a/src/networksettings/wpasupplicant/qnetworksettingsservice_p.h
+++ b/src/networksettings/wpasupplicant/qnetworksettingsservice_p.h
@@ -40,7 +40,7 @@ class QNetworkSettingsServicePrivate : public QObject
Q_OBJECT
Q_DECLARE_PUBLIC(QNetworkSettingsService)
public:
- QNetworkSettingsServicePrivate(const QString& aServiceId, QNetworkSettingsService *parent = nullptr);
+ QNetworkSettingsServicePrivate(const QString& aServiceId, QNetworkSettingsService *parent = Q_NULLPTR);
void setManager(QNetworkSettingsManagerPrivate *manager);
QNetworkSettingsService *q_ptr;
@@ -70,7 +70,7 @@ class WpaSupplicantService : public QNetworkSettingsService
{
Q_OBJECT
public:
- explicit WpaSupplicantService(QNetworkSettingsManagerPrivate* manager, QObject* parent = nullptr);
+ explicit WpaSupplicantService(QNetworkSettingsManagerPrivate* manager, QObject* parent = Q_NULLPTR);
void setId(const QString& aId);
void setName(const QString& aName);
void setFlags(const QString& aFlags);