summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPasi Petäjäjärvi <pasi.petajajarvi@qt.io>2022-05-11 13:02:41 +0300
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2022-05-12 10:47:00 +0000
commit448e05551972647093b27a7b2b3913fadc614153 (patch)
treef46c24330f432b0d21a04294dd86c259b4a1f834 /src
parentbab755c2237893da31aac42300ad76404315be1b (diff)
Fix having zero initial technologies (interfaces) on device
We always expect to have at least one technology available when new technology is added via onTechnologyAdded Fixes: QTBUG-102816 Change-Id: Ia4f1c0b807ea14645a27bb1bc758f8879c5c2473 Reviewed-by: <schilling@mueller-elektronik.de> Reviewed-by: Teemu Holappa <teemu.holappa@qt.io> (cherry picked from commit d40afbc3f42e4ba1873edcdfed185d11819d55a3) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'src')
-rw-r--r--src/networksettings/connman/qnetworksettingsmanager_p.cpp27
1 files changed, 15 insertions, 12 deletions
diff --git a/src/networksettings/connman/qnetworksettingsmanager_p.cpp b/src/networksettings/connman/qnetworksettingsmanager_p.cpp
index 9a812d1..eb2c1e7 100644
--- a/src/networksettings/connman/qnetworksettingsmanager_p.cpp
+++ b/src/networksettings/connman/qnetworksettingsmanager_p.cpp
@@ -181,20 +181,23 @@ void QNetworkSettingsManagerPrivate::onTechnologyAdded(const QDBusObjectPath &te
Q_Q(QNetworkSettingsManager);
foreach (QNetworkSettingsInterface* item, m_interfaceModel.getModel()) {
- ConnmanSettingsInterface* tech = qobject_cast<ConnmanSettingsInterface*>(item);
- if (tech->path() != technology.path()) {
- ConnmanSettingsInterface *interface = new ConnmanSettingsInterface(technology.path(), properties, this);
- interface->scanServices();
-
- if (interface->type() == QNetworkSettingsType::Wired) {
- m_interfaceModel.insert(0, interface);
- }
- else if (interface->type() == QNetworkSettingsType::Wifi) {
- m_interfaceModel.append(interface);
- }
- emit q->interfacesChanged();
+ ConnmanSettingsInterface* interface = qobject_cast<ConnmanSettingsInterface*>(item);
+ if (interface->path() == technology.path()) {
+ return; // we already know the interface/technology
}
}
+
+ ConnmanSettingsInterface *interface = new ConnmanSettingsInterface(technology.path(), properties, this);
+ interface->scanServices();
+
+ if (interface->type() == QNetworkSettingsType::Wired) {
+ m_interfaceModel.insert(0, interface);
+ }
+ else if (interface->type() == QNetworkSettingsType::Wifi) {
+ m_interfaceModel.append(interface);
+ }
+
+ emit q->interfacesChanged();
}
void QNetworkSettingsManagerPrivate::onTechnologyRemoved(const QDBusObjectPath &technology)