diff --git a/src/plugins/bearer/networkmanager/qnetworkmanagerengine.cpp b/src/plugins/bearer/networkmanager/qnetworkmanagerengine.cpp index 3b8a85a..c0f57b0 100644 --- a/src/plugins/bearer/networkmanager/qnetworkmanagerengine.cpp +++ b/src/plugins/bearer/networkmanager/qnetworkmanagerengine.cpp @@ -122,6 +122,8 @@ void QNetworkManagerEngine::setupConfigurations() QMutexLocker locker(&mutex); // Get active connections. foreach (const QDBusObjectPath &acPath, managerInterface->activeConnections()) { + if (activeConnectionsList.contains(acPath.path())) + continue; QNetworkManagerConnectionActive *activeConnection = new QNetworkManagerConnectionActive(acPath.path(),this); @@ -131,6 +133,8 @@ void QNetworkManagerEngine::setupConfigurations() QStringList devices = activeConnection->devices(); if (!devices.isEmpty()) { + if (connectionInterfaces.contains(activeConnection->connection().path())) + continue; QNetworkManagerInterfaceDevice device(devices.at(0),this); connectionInterfaces.insert(activeConnection->connection().path(),device.networkInterface()); } @@ -395,6 +399,9 @@ void QNetworkManagerEngine::deviceConnectionsChanged(const QStringList &connecti void QNetworkManagerEngine::deviceAdded(const QDBusObjectPath &path) { + if (interfaceDevices.contains(path.path())) + return; + QNetworkManagerInterfaceDevice *iDevice; iDevice = new QNetworkManagerInterfaceDevice(path.path(),this); connect(iDevice,SIGNAL(connectionsChanged(QStringList)), @@ -738,10 +745,11 @@ void QNetworkManagerEngine::newAccessPoint(const QString &path) void QNetworkManagerEngine::removeAccessPoint(const QString &path) { QMutexLocker locker(&mutex); + qDebug() << path; for (int i = 0; i < accessPoints.count(); ++i) { - QNetworkManagerInterfaceAccessPoint *accessPoint = accessPoints.at(i); - if (accessPoint->path() == path) { - accessPoints.removeOne(accessPoint); + if (accessPoints.at(i)->path() == path) { + + QNetworkManagerInterfaceAccessPoint *accessPoint = accessPoints.takeAt(i); if (configuredAccessPoints.contains(accessPoint->path())) { // find connection and change state to Defined