summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPasi Petäjäjärvi <pasi.petajajarvi@qt.io>2021-12-16 14:36:23 +0200
committerPasi Petäjäjärvi <pasi.petajajarvi@qt.io>2022-06-15 06:58:28 +0000
commita6d299e8b545aab18195f07dbb031a304d5d8677 (patch)
treefb71f8d20fa8f20fc2ee76087e225421abafcb67
parent5bcfd28a57878bd7e193b38886950974acf706c1 (diff)
Fix dynamic interface handling
Properly add/remove interface/technology when either physically added/removed or disable with connman Change-Id: I8d527c60a0e9218e3ae01ba6a685e067182622c1 Reviewed-by: Samuli Piippo <samuli.piippo@qt.io> (cherry picked from commit 694effb2afc14961cd9cbda56da6fa6e1e07c607)
-rw-r--r--src/networksettings/connman/qnetworksettingsmanager_p.cpp2
-rw-r--r--src/networksettings/qnetworksettingsinterfacemodel.cpp9
2 files changed, 3 insertions, 8 deletions
diff --git a/src/networksettings/connman/qnetworksettingsmanager_p.cpp b/src/networksettings/connman/qnetworksettingsmanager_p.cpp
index 0c4954a..4503f4d 100644
--- a/src/networksettings/connman/qnetworksettingsmanager_p.cpp
+++ b/src/networksettings/connman/qnetworksettingsmanager_p.cpp
@@ -207,7 +207,7 @@ void QNetworkSettingsManagerPrivate::onTechnologyRemoved(const QDBusObjectPath &
foreach (QNetworkSettingsInterface* item, m_interfaceModel.getModel()) {
ConnmanSettingsInterface* tech = qobject_cast<ConnmanSettingsInterface*>(item);
if (tech->path() == technology.path()) {
- m_interfaceModel.removeInterface(technology.path());
+ m_interfaceModel.removeInterface(tech->name());
emit q->interfacesChanged();
}
}
diff --git a/src/networksettings/qnetworksettingsinterfacemodel.cpp b/src/networksettings/qnetworksettingsinterfacemodel.cpp
index 045d3ff..8d6ca60 100644
--- a/src/networksettings/qnetworksettingsinterfacemodel.cpp
+++ b/src/networksettings/qnetworksettingsinterfacemodel.cpp
@@ -122,12 +122,7 @@ QVariant QNetworkSettingsInterfaceModel::data(const QModelIndex & index, int rol
*/
void QNetworkSettingsInterfaceModel::append(QNetworkSettingsInterface* item)
{
- item->setParent(this);
- connectStateChanges(item);
-
- beginInsertRows(QModelIndex(), rowCount(), rowCount());
- m_items.append(item);
- endInsertRows();
+ insert(rowCount(), item);
}
/*!
@@ -155,7 +150,7 @@ void QNetworkSettingsInterfaceModel::connectStateChanges(QNetworkSettingsInterfa
void QNetworkSettingsInterfaceModel::remove(int row)
{
beginRemoveRows(QModelIndex(), row, row);
- m_items.removeFirst();
+ m_items.takeAt(row)->deleteLater();
endRemoveRows();
}