summaryrefslogtreecommitdiffstats
path: root/src
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>2021-12-17 10:38:29 +0200
commit694effb2afc14961cd9cbda56da6fa6e1e07c607 (patch)
treeb8a7b5da1f6d1fd516c2525a2a23cddc771157db /src
parent25f5bd90638671355dfdd98b3f3b7a3b00c9b6b3 (diff)
Fix dynamic interface handling
Properly add/remove interface/technology when either physically added/removed or disable with connman Pick-to: 6.2 6.3 Change-Id: I8d527c60a0e9218e3ae01ba6a685e067182622c1 Reviewed-by: Samuli Piippo <samuli.piippo@qt.io>
Diffstat (limited to 'src')
-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 865cab6..7321a32 100644
--- a/src/networksettings/connman/qnetworksettingsmanager_p.cpp
+++ b/src/networksettings/connman/qnetworksettingsmanager_p.cpp
@@ -206,7 +206,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();
}