diff options
author | Liang Qi <liang.qi@qt.io> | 2016-09-21 08:34:25 +0200 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2016-09-21 08:34:25 +0200 |
commit | 3246c09fa5dd9c9354be8ec7d41fa5d5a57f0d0e (patch) | |
tree | 7e177e3205bcbdb44bef0630b71efeb632314eee /examples/svg/network/bearercloud/bearercloud.cpp | |
parent | 28caa8995d6872e665085f48f6efa770fc912201 (diff) | |
parent | 5a00abdefd1c050aae8760dfc01ae5e3631077aa (diff) | |
download | qtsvg-3246c09fa5dd9c9354be8ec7d41fa5d5a57f0d0e.tar.gz |
Merge remote-tracking branch 'origin/5.8' into dev
Change-Id: Idddd7f4219934dfe950a9e85b1f647ed11817495
Diffstat (limited to 'examples/svg/network/bearercloud/bearercloud.cpp')
-rw-r--r-- | examples/svg/network/bearercloud/bearercloud.cpp | 39 |
1 files changed, 25 insertions, 14 deletions
diff --git a/examples/svg/network/bearercloud/bearercloud.cpp b/examples/svg/network/bearercloud/bearercloud.cpp index 1ec711e..bf2a444 100644 --- a/examples/svg/network/bearercloud/bearercloud.cpp +++ b/examples/svg/network/bearercloud/bearercloud.cpp @@ -113,17 +113,19 @@ void BearerCloud::cloudMoved() void BearerCloud::timerEvent(QTimerEvent *) { - QList<Cloud *> clouds; - foreach (QGraphicsItem *item, items()) { + std::vector<Cloud *> clouds; + const auto graphicsItems = items(); + clouds.reserve(graphicsItems.size()); + for (QGraphicsItem *item : graphicsItems) { if (Cloud *cloud = qgraphicsitem_cast<Cloud *>(item)) - clouds << cloud; + clouds.push_back(cloud); } - foreach (Cloud *cloud, clouds) + for (Cloud *cloud : clouds) cloud->calculateForces(); bool cloudsMoved = false; - foreach (Cloud *cloud, clouds) + for (Cloud *cloud : clouds) cloudsMoved |= cloud->advance(); if (!cloudsMoved) { @@ -158,8 +160,13 @@ void BearerCloud::configurationAdded(const QNetworkConfiguration &config) //! [3] void BearerCloud::configurationRemoved(const QNetworkConfiguration &config) { - foreach (const QNetworkConfiguration::StateFlags &state, configStates.uniqueKeys()) - configStates.remove(state, config.identifier()); + const auto id = config.identifier(); + for (auto it = configStates.begin(), end = configStates.end(); it != end; /* erasing */) { + if (it.value() == id) + it = configStates.erase(it); + else + ++it; + } Cloud *item = configurations.take(config.identifier()); @@ -173,10 +180,15 @@ void BearerCloud::configurationRemoved(const QNetworkConfiguration &config) //! [4] void BearerCloud::configurationChanged(const QNetworkConfiguration &config) { - foreach (const QNetworkConfiguration::StateFlags &state, configStates.uniqueKeys()) - configStates.remove(state, config.identifier()); + const auto id = config.identifier(); + for (auto it = configStates.begin(), end = configStates.end(); it != end; /* erasing */) { + if (it.value() == id) + it = configStates.erase(it); + else + ++it; + } - configStates.insert(config.state(), config.identifier()); + configStates.insert(config.state(), id); cloudMoved(); } @@ -185,10 +197,9 @@ void BearerCloud::configurationChanged(const QNetworkConfiguration &config) //! [1] void BearerCloud::updateConfigurations() { - QList<QNetworkConfiguration> allConfigurations = manager.allConfigurations(); - - while (!allConfigurations.isEmpty()) - configurationAdded(allConfigurations.takeFirst()); + const auto allConfigurations = manager.allConfigurations(); + for (const QNetworkConfiguration &config : allConfigurations) + configurationAdded(config); cloudMoved(); } |