diff options
author | Pasi Petäjäjärvi <pasi.petajajarvi@qt.io> | 2021-12-16 14:36:23 +0200 |
---|---|---|
committer | Pasi Petäjäjärvi <pasi.petajajarvi@qt.io> | 2021-12-17 10:38:29 +0200 |
commit | 694effb2afc14961cd9cbda56da6fa6e1e07c607 (patch) | |
tree | b8a7b5da1f6d1fd516c2525a2a23cddc771157db /src/networksettings | |
parent | 25f5bd90638671355dfdd98b3f3b7a3b00c9b6b3 (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/networksettings')
-rw-r--r-- | src/networksettings/connman/qnetworksettingsmanager_p.cpp | 2 | ||||
-rw-r--r-- | src/networksettings/qnetworksettingsinterfacemodel.cpp | 9 |
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(); } |