summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVille Voutilainen <ville.voutilainen@qt.io>2017-06-13 17:05:24 +0300
committerVille Voutilainen <ville.voutilainen@qt.io>2017-06-14 07:36:23 +0000
commit6179baf7ce0af0e7c86e9f837947db13f18c7ba2 (patch)
tree287ea31dfbe1c2eae38e93e8788912b2dbc2e7fa
parent8fa6ff755739d310439e39e2bfbf4d7b5b2f410c (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.cpp17
-rw-r--r--src/settingsui/network/ComboBoxEntry.qml4
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)
}
}