diff options
author | Pasi Petäjäjärvi <pasi.petajajarvi@qt.io> | 2021-12-16 14:36:23 +0200 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2021-12-17 08:48:26 +0000 |
commit | dac33aa9082b9fa80f131f44e21d96003c3bf7ce (patch) | |
tree | 33509989bafbe427b1d3597c5cad3685469aa245 | |
parent | 03f31b0a57224e174971ec1f420b799c2fbd68ce (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)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-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(); } |