summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc Mutz <marc.mutz@kdab.com>2016-09-06 17:54:23 +0200
committerMarc Mutz <marc.mutz@kdab.com>2016-09-13 19:58:19 +0000
commit74bc4617dd5a38abb60aff8b252001cb2ff9c7b8 (patch)
tree8368a44500af57a0880d89b47ddc73f9b38d6530
parent4c44cffd7b376900fc41169365ae03c7c65d95b6 (diff)
downloadqtsvg-74bc4617dd5a38abb60aff8b252001cb2ff9c7b8.tar.gz
Eradicate Q_FOREACH loops and mark the module as Q_FOREACH-free
In BearerCloud::timerEvent(), bite the bullet and use a std::vector instead of a QList to avoid repeated qAsConst() applications. In BearerCloud::configurationRemoved() and configurationChanged(), instead of iterating over QMultiMap::uniqueKeys() and QMap::remove(), iterate directly over the QMultiMap and remove the desired elements. Cache a QString. In BearerCloud::updateConfigurations(), instead of using while !isEmpty() takeFirst() on a local copy of a QList, simply iterate over the QList (now made const) using C++11 ranged for. In tst_QSvgGenerator, replace a QList of statically-known size with a C array. Change-Id: Ic0dd1c67d0819fe6167f2bce248f9b910be65803 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
-rw-r--r--.qmake.conf2
-rw-r--r--examples/svg/embedded/desktopservices/contenttab.cpp5
-rw-r--r--examples/svg/network/bearercloud/bearercloud.cpp39
-rw-r--r--examples/svg/network/bearercloud/cloud.cpp3
-rw-r--r--examples/svg/svgviewer/exportdialog.cpp3
-rw-r--r--src/svg/qsvggenerator.cpp2
-rw-r--r--tests/auto/qsvggenerator/tst_qsvggenerator.cpp12
7 files changed, 42 insertions, 24 deletions
diff --git a/.qmake.conf b/.qmake.conf
index 556f554..d1e1c4c 100644
--- a/.qmake.conf
+++ b/.qmake.conf
@@ -1,4 +1,6 @@
load(qt_build_config)
+
CONFIG += warning_clean
+DEFINES += QT_NO_FOREACH
MODULE_VERSION = 5.8.0
diff --git a/examples/svg/embedded/desktopservices/contenttab.cpp b/examples/svg/embedded/desktopservices/contenttab.cpp
index d388c23..8d467df 100644
--- a/examples/svg/embedded/desktopservices/contenttab.cpp
+++ b/examples/svg/embedded/desktopservices/contenttab.cpp
@@ -104,10 +104,9 @@ void ContentTab::setIcon(const QString &icon)
void ContentTab::populateListWidget()
{
- QFileInfoList fileList = m_ContentDir.entryInfoList(QDir::Files, QDir::Time);
- foreach(QFileInfo item, fileList) {
+ const QFileInfoList fileList = m_ContentDir.entryInfoList(QDir::Files, QDir::Time);
+ for (const QFileInfo &item : fileList)
new QListWidgetItem(m_Icon, itemName(item), this);
- }
}
QString ContentTab::itemName(const QFileInfo &item)
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();
}
diff --git a/examples/svg/network/bearercloud/cloud.cpp b/examples/svg/network/bearercloud/cloud.cpp
index 936c03a..fb5bfd2 100644
--- a/examples/svg/network/bearercloud/cloud.cpp
+++ b/examples/svg/network/bearercloud/cloud.cpp
@@ -108,7 +108,8 @@ void Cloud::calculateForces()
qreal xvel = 0;
qreal yvel = 0;
QLineF orbitForce;
- foreach (QGraphicsItem *item, scene()->items()) {
+ const auto graphicsItems = scene()->items();
+ for (QGraphicsItem *item : graphicsItems) {
// other clouds
Cloud *cloud = qgraphicsitem_cast<Cloud *>(item);
if (!cloud && item->data(0) != QLatin1String("This Device"))
diff --git a/examples/svg/svgviewer/exportdialog.cpp b/examples/svg/svgviewer/exportdialog.cpp
index 04c9e12..b7cb96a 100644
--- a/examples/svg/svgviewer/exportdialog.cpp
+++ b/examples/svg/svgviewer/exportdialog.cpp
@@ -195,7 +195,8 @@ void ExportDialog::browse()
if (!fileName.isEmpty())
fileDialog.setDirectory(QFileInfo(fileName).absolutePath());
QStringList mimeTypes;
- foreach (const QByteArray &mimeType, QImageWriter::supportedMimeTypes())
+ const auto supportedMimeTypes = QImageWriter::supportedMimeTypes();
+ for (const QByteArray &mimeType : supportedMimeTypes)
mimeTypes.append(QLatin1String(mimeType));
fileDialog.setMimeTypeFilters(mimeTypes);
const int pngIndex = mimeTypes.indexOf("image/png");
diff --git a/src/svg/qsvggenerator.cpp b/src/svg/qsvggenerator.cpp
index 0abd403..6e99367 100644
--- a/src/svg/qsvggenerator.cpp
+++ b/src/svg/qsvggenerator.cpp
@@ -284,7 +284,7 @@ public:
}
}
- for (QGradientStop stop : qAsConst(stops)) {
+ for (const QGradientStop &stop : qAsConst(stops)) {
QString color =
QString::fromLatin1("#%1%2%3")
.arg(stop.second.red(), 2, 16, QLatin1Char('0'))
diff --git a/tests/auto/qsvggenerator/tst_qsvggenerator.cpp b/tests/auto/qsvggenerator/tst_qsvggenerator.cpp
index db7e3e5..4795b55 100644
--- a/tests/auto/qsvggenerator/tst_qsvggenerator.cpp
+++ b/tests/auto/qsvggenerator/tst_qsvggenerator.cpp
@@ -99,10 +99,14 @@ static void compareWithoutFontInfo(const QByteArray &source, const QByteArray &r
QDomDocument referenceDoc;
referenceDoc.setContent(reference);
- QList<QString> fontAttributes;
- fontAttributes << "font-family" << "font-size" << "font-weight" << "font-style";
-
- foreach (QString attribute, fontAttributes) {
+ const QString fontAttributes[] = {
+ "font-family",
+ "font-size",
+ "font-weight",
+ "font-style",
+ };
+
+ for (const QString &attribute : fontAttributes) {
removeAttribute(sourceDoc, attribute);
removeAttribute(referenceDoc, attribute);
}