diff options
author | Ville Voutilainen <ville.voutilainen@qt.io> | 2017-06-13 17:05:24 +0300 |
---|---|---|
committer | Ville Voutilainen <ville.voutilainen@qt.io> | 2017-06-14 07:36:23 +0000 |
commit | 6179baf7ce0af0e7c86e9f837947db13f18c7ba2 (patch) | |
tree | 287ea31dfbe1c2eae38e93e8788912b2dbc2e7fa | |
parent | 8fa6ff755739d310439e39e2bfbf4d7b5b2f410c (diff) |
Set a default netmask and gateway if the user didn't provide them
Task-number: QTBUG-60979
Change-Id: Icf0d23b080d7769c601b1835b182421dfb588638
Reviewed-by: Teemu Holappa <teemu.holappa@qt.io>
-rw-r--r-- | src/networksettings/connman/qnetworksettingsservice_p.cpp | 17 | ||||
-rw-r--r-- | src/settingsui/network/ComboBoxEntry.qml | 4 |
2 files changed, 19 insertions, 2 deletions
diff --git a/src/networksettings/connman/qnetworksettingsservice_p.cpp b/src/networksettings/connman/qnetworksettingsservice_p.cpp index e8aabff..41f0aa0 100644 --- a/src/networksettings/connman/qnetworksettingsservice_p.cpp +++ b/src/networksettings/connman/qnetworksettingsservice_p.cpp @@ -29,6 +29,7 @@ #include "qnetworksettingsservice_p.h" #include "connman_service_interface.h" #include "connmancommon.h" +#include <QHostAddress> const QString PropertyIPv4(QStringLiteral("IPv4")); const QString PropertyQNetworkSettingsIPv4(QStringLiteral("IPv4.Configuration")); @@ -285,8 +286,24 @@ void QNetworkSettingsServicePrivate::setupQNetworkSettingsProxy() m_service->SetProperty(PropertyQNetworkSettingsProxy, QDBusVariant(QVariant(param))); } +static void ensureMaskAndGateway(QNetworkSettingsIPv4& ipv4Settings) +{ + if (ipv4Settings.mask().isEmpty()) { + ipv4Settings.setMask(QString::fromUtf8("255.255.0.0")); + } + if (ipv4Settings.gateway().isEmpty()) { + QHostAddress addr{ipv4Settings.address()}; + quint32 addrIp = addr.toIPv4Address(); + QHostAddress mask{ipv4Settings.mask()}; + quint32 maskIp = mask.toIPv4Address(); + quint32 gwIp = addrIp & maskIp; + ipv4Settings.setGateway(QHostAddress{gwIp}.toString()); + } +} + void QNetworkSettingsServicePrivate::setupIpv4Config() { + ensureMaskAndGateway(m_ipv4config); QVariantMap param; param << m_ipv4config; if (m_service) diff --git a/src/settingsui/network/ComboBoxEntry.qml b/src/settingsui/network/ComboBoxEntry.qml index 91655ed..1d4858a 100644 --- a/src/settingsui/network/ComboBoxEntry.qml +++ b/src/settingsui/network/ComboBoxEntry.qml @@ -55,7 +55,7 @@ RowLayout { id: cb textRole: "text" Layout.fillWidth: true - onActivated: root.activated(index) - onHighlightedIndexChanged: root.highlighted(index) + onActivated: root.activated(currentIndex) + onHighlightedIndexChanged: root.highlighted(currentIndex) } } |