diff -r 5dc02b23752f -r 3e2da88830cd src/network/bearer/qnetworkconfiguration.cpp --- a/src/network/bearer/qnetworkconfiguration.cpp Tue Jul 06 15:10:48 2010 +0300 +++ b/src/network/bearer/qnetworkconfiguration.cpp Wed Aug 18 10:37:55 2010 +0300 @@ -343,9 +343,11 @@ } /*! - Returns all sub configurations of this network configuration. - Only network configurations of type \l ServiceNetwork can have children. Otherwise - this function returns an empty list. + Returns all sub configurations of this network configuration in priority order. The first sub + configuration in the list has the highest priority. + + Only network configurations of type \l ServiceNetwork can have children. Otherwise this + function returns an empty list. */ QList QNetworkConfiguration::children() const { @@ -356,16 +358,18 @@ QMutexLocker locker(&d->mutex); - QMutableListIterator iter(d->serviceNetworkMembers); - while (iter.hasNext()) { - QNetworkConfigurationPrivatePointer p = iter.next(); + QMutableMapIterator i(d->serviceNetworkMembers); + while (i.hasNext()) { + i.next(); + + QNetworkConfigurationPrivatePointer p = i.value(); //if we have an invalid member get rid of it -> was deleted earlier on { QMutexLocker childLocker(&p->mutex); if (!p->isValid) { - iter.remove(); + i.remove(); continue; } } @@ -428,6 +432,5 @@ return d->bearerName(); } - QT_END_NAMESPACE