summaryrefslogtreecommitdiffstats
path: root/src/networksettings
diff options
context:
space:
mode:
authorSamuli Piippo <samuli.piippo@qt.io>2016-12-16 15:07:38 +0200
committerSamuli Piippo <samuli.piippo@qt.io>2016-12-16 15:07:38 +0200
commit4f54d9b10ebdd296accfa5526d7c941a03249a50 (patch)
tree80cdb907a68a65775852142a71be553ab0b9a0f4 /src/networksettings
parent48af5733bcd959146ac157a3c4759c8d89ccc465 (diff)
parentc494f7b4debb2d789154c4297c9bee420ac96b2b (diff)
Merge remote-tracking branch 'origin/5.7' into 5.8
* origin/5.7: Rename main project file to match project name Fix compile error in qtdevicesettings Fix QNetworkSettingsManager usage from the C++ Fix Wifi utils connection view Make bluetooth support optional Fix typo Remove unneeded include Use new style signals and slots connection Fix uninitialized variables Fix unused variable warning Fix deprecated QString warning Qt does not name getter functions with 'get' Fix compile errors: declaration of ‘<X>’ shadows a member of 'this' Fix compile error: No Qt keywords allowed in header files Fix compile error: 0 is not allowed for pointer initialization anymore Conflicts: src/bluetoothsettings/bluetoothdevice.h src/bluetoothsettings/bluez/bluetoothdevice_p.h src/bluetoothsettings/discoverymodel.h src/displaysettings/displaysettings.h src/displaysettings/displaysettings_p.h src/localdevice/qlocaldevice.h src/localesettings/localemodel.h src/localesettings/systemlocale.h src/networksettings/connman/qnetworksettingsinterface_p.h src/networksettings/connman/qnetworksettingsservice_p.h src/networksettings/connman/qnetworksettingsuseragent_p.h src/networksettings/qnetworksettings.h src/networksettings/qnetworksettingsaddressmodel.h src/networksettings/qnetworksettingsinterface.h src/networksettings/qnetworksettingsinterfacemodel.h src/networksettings/qnetworksettingsmanager.h src/networksettings/qnetworksettingsservice.h src/networksettings/qnetworksettingsservicemodel.h src/networksettings/qnetworksettingsuseragent.h src/networksettings/wpasupplicant/qnetworksettingsservice_p.h src/timedatesettings/systemtime.h src/timedatesettings/timezonemodel.h Change-Id: I7db3a24e41718e5951ec33336a1a4bd08b33e823
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);