From f2f8820073488c89fb71e3eb2d2e87bb582c3995 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Tue, 8 Aug 2023 10:54:07 +0200 Subject: [PATCH] tests: port assorted trivial uses of Q_FOREACH to ranged for loops MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit All of these fall into the trivial category: loops over (readily made) const local containers. As such, they cannot possibly depend on the safety copy that Q_FOREACH performs, so are safe to port as-is to ranged for loops. There may be more where these came from, but these were the ones that stood out as immediately obvious when scanning the 100s of uses in qtbase, so I preferred to directly fix them over white-listing their files with QT_NO_FOREACH (which still may be necessary for some files, as this patch may not port all uses in that file). Pick-to: 6.6 6.5 Task-nubmber: QTBUG-115839 Change-Id: I7b7893bec8254f902660dac24167113aca855029 Reviewed-by: Fabian Kosmale Reviewed-by: MÃ¥rten Nordheim Reviewed-by: Ivan Solovev --- .../plugin/qpluginloader/tst_qpluginloader.cpp | 4 ++-- .../qfilesystemmodel/tst_qfilesystemmodel.cpp | 5 +++-- .../gui/text/qfontdatabase/tst_qfontdatabase.cpp | 4 ++-- tests/auto/gui/text/qrawfont/tst_qrawfont.cpp | 4 ++-- .../access/qnetworkrequest/tst_qnetworkrequest.cpp | 4 ++-- .../network/kernel/qdnslookup/tst_qdnslookup.cpp | 4 ++-- .../qnetworkinterface/tst_qnetworkinterface.cpp | 4 ++-- .../network/socket/qtcpsocket/tst_qtcpsocket.cpp | 4 ++-- .../ssl/qsslcertificate/tst_qsslcertificate.cpp | 4 ++-- .../kernel/qprinterinfo/tst_qprinterinfo.cpp | 4 ++-- tests/auto/tools/macdeployqt/tst_macdeployqt.cpp | 2 +- tests/baseline/shared/paintcommands.cpp | 4 ++-- tests/manual/gestures/graphicsview/main.cpp | 4 ++-- tests/manual/highdpi/kitchensink/dragwidget.cpp | 6 +++--- tests/manual/qgraphicsitemgroup/customitem.cpp | 8 ++++---- tests/manual/qgraphicsitemgroup/widget.cpp | 12 ++++++------ tests/manual/qlocale/window.cpp | 4 ++-- tests/manual/qscreen/propertywatcher.cpp | 4 ++-- 18 files changed, 43 insertions(+), 42 deletions(-) diff --git a/tests/auto/corelib/plugin/qpluginloader/tst_qpluginloader.cpp b/tests/auto/corelib/plugin/qpluginloader/tst_qpluginloader.cpp index f4714af91f..bb6ecb45f4 100644 --- a/tests/auto/corelib/plugin/qpluginloader/tst_qpluginloader.cpp +++ b/tests/auto/corelib/plugin/qpluginloader/tst_qpluginloader.cpp @@ -876,8 +876,8 @@ void tst_QPluginLoader::loadMachO_data() QTest::newRow("machtest/good.fat.stub-i386.dylib") << false; QDir d(QFINDTESTDATA("machtest")); - QStringList badlist = d.entryList(QStringList() << "bad*.dylib"); - foreach (const QString &bad, badlist) + const QStringList badlist = d.entryList(QStringList() << "bad*.dylib"); + for (const QString &bad : badlist) QTest::newRow(qPrintable("machtest/" + bad)) << false; #endif } diff --git a/tests/auto/gui/itemmodels/qfilesystemmodel/tst_qfilesystemmodel.cpp b/tests/auto/gui/itemmodels/qfilesystemmodel/tst_qfilesystemmodel.cpp index 3802f8afc6..6f7aa0e180 100644 --- a/tests/auto/gui/itemmodels/qfilesystemmodel/tst_qfilesystemmodel.cpp +++ b/tests/auto/gui/itemmodels/qfilesystemmodel/tst_qfilesystemmodel.cpp @@ -1028,11 +1028,12 @@ void tst_QFileSystemModel::drives() QFileSystemModel model; model.setRootPath(path); model.fetchMore(QModelIndex()); - QFileInfoList drives = QDir::drives(); + const QFileInfoList drives = QDir::drives(); int driveCount = 0; - foreach(const QFileInfo& driveRoot, drives) + for (const QFileInfo& driveRoot : drives) { if (driveRoot.exists()) driveCount++; + } QTRY_COMPARE(model.rowCount(), driveCount); } diff --git a/tests/auto/gui/text/qfontdatabase/tst_qfontdatabase.cpp b/tests/auto/gui/text/qfontdatabase/tst_qfontdatabase.cpp index 665ee75a35..172cb2480b 100644 --- a/tests/auto/gui/text/qfontdatabase/tst_qfontdatabase.cpp +++ b/tests/auto/gui/text/qfontdatabase/tst_qfontdatabase.cpp @@ -319,8 +319,8 @@ void tst_QFontDatabase::fallbackFonts() layout.createLine(); layout.endLayout(); - QList runs = layout.glyphRuns(0, 1); - foreach (QGlyphRun run, runs) { + const QList runs = layout.glyphRuns(0, 1); + for (QGlyphRun run : runs) { QRawFont rawFont = run.rawFont(); QVERIFY(rawFont.isValid()); diff --git a/tests/auto/gui/text/qrawfont/tst_qrawfont.cpp b/tests/auto/gui/text/qrawfont/tst_qrawfont.cpp index 8b203f439e..3c45a18ab2 100644 --- a/tests/auto/gui/text/qrawfont/tst_qrawfont.cpp +++ b/tests/auto/gui/text/qrawfont/tst_qrawfont.cpp @@ -490,7 +490,7 @@ void tst_QRawFont::supportedWritingSystems_data() void tst_QRawFont::supportedWritingSystems() { QFETCH(QString, fileName); - QFETCH(WritingSystemList, writingSystems); + QFETCH(const WritingSystemList, writingSystems); QFETCH(QFont::HintingPreference, hintingPreference); QRawFont font(fileName, 10, hintingPreference); @@ -499,7 +499,7 @@ void tst_QRawFont::supportedWritingSystems() WritingSystemList actualWritingSystems = font.supportedWritingSystems(); QCOMPARE(actualWritingSystems.size(), writingSystems.size()); - foreach (QFontDatabase::WritingSystem writingSystem, writingSystems) + for (QFontDatabase::WritingSystem writingSystem : writingSystems) QVERIFY(actualWritingSystems.contains(writingSystem)); } diff --git a/tests/auto/network/access/qnetworkrequest/tst_qnetworkrequest.cpp b/tests/auto/network/access/qnetworkrequest/tst_qnetworkrequest.cpp index c04530d085..356400f6a8 100644 --- a/tests/auto/network/access/qnetworkrequest/tst_qnetworkrequest.cpp +++ b/tests/auto/network/access/qnetworkrequest/tst_qnetworkrequest.cpp @@ -166,11 +166,11 @@ void tst_QNetworkRequest::rawHeaderList_data() void tst_QNetworkRequest::rawHeaderList() { - QFETCH(QList, set); + QFETCH(const QList, set); QFETCH(QList, expected); QNetworkRequest request; - foreach (QByteArray header, set) + for (const QByteArray &header : set) request.setRawHeader(header, "a value"); QList got = request.rawHeaderList(); diff --git a/tests/auto/network/kernel/qdnslookup/tst_qdnslookup.cpp b/tests/auto/network/kernel/qdnslookup/tst_qdnslookup.cpp index 1b7e8db7b1..89d9063f8e 100644 --- a/tests/auto/network/kernel/qdnslookup/tst_qdnslookup.cpp +++ b/tests/auto/network/kernel/qdnslookup/tst_qdnslookup.cpp @@ -190,9 +190,9 @@ QString tst_QDnsLookup::domainName(const QString &input) QString tst_QDnsLookup::domainNameList(const QString &input) { - QStringList list = input.split(QLatin1Char(';')); + const QStringList list = input.split(QLatin1Char(';')); QString result; - foreach (const QString &s, list) { + for (const QString &s : list) { if (!result.isEmpty()) result += ';'; result += domainName(s); diff --git a/tests/auto/network/kernel/qnetworkinterface/tst_qnetworkinterface.cpp b/tests/auto/network/kernel/qnetworkinterface/tst_qnetworkinterface.cpp index 36027d89da..db06b83940 100644 --- a/tests/auto/network/kernel/qnetworkinterface/tst_qnetworkinterface.cpp +++ b/tests/auto/network/kernel/qnetworkinterface/tst_qnetworkinterface.cpp @@ -71,8 +71,8 @@ void tst_QNetworkInterface::initTestCase() void tst_QNetworkInterface::dump() { // This is for manual testing: - QList allInterfaces = QNetworkInterface::allInterfaces(); - foreach (const QNetworkInterface &i, allInterfaces) { + const QList allInterfaces = QNetworkInterface::allInterfaces(); + for (const QNetworkInterface &i : allInterfaces) { QString flags; if (i.flags() & QNetworkInterface::IsUp) flags += "Up,"; if (i.flags() & QNetworkInterface::IsRunning) flags += "Running,"; diff --git a/tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp b/tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp index 4e08b5a30f..c1b89f9e56 100644 --- a/tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp +++ b/tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp @@ -487,8 +487,8 @@ void tst_QTcpSocket::bind_data() bool testIpv6 = false; // iterate all interfaces, add all addresses on them as test data - QList interfaces = QNetworkInterface::allInterfaces(); - foreach (const QNetworkInterface &netinterface, interfaces) { + const QList interfaces = QNetworkInterface::allInterfaces(); + for (const QNetworkInterface &netinterface : interfaces) { if (!netinterface.isValid()) continue; diff --git a/tests/auto/network/ssl/qsslcertificate/tst_qsslcertificate.cpp b/tests/auto/network/ssl/qsslcertificate/tst_qsslcertificate.cpp index 282bec95ef..852825b5d9 100644 --- a/tests/auto/network/ssl/qsslcertificate/tst_qsslcertificate.cpp +++ b/tests/auto/network/ssl/qsslcertificate/tst_qsslcertificate.cpp @@ -138,13 +138,13 @@ void tst_QSslCertificate::initTestCase() testDataDir += QLatin1String("/"); QDir dir(testDataDir + "certificates"); - QFileInfoList fileInfoList = dir.entryInfoList(QDir::Files | QDir::Readable); + const QFileInfoList fileInfoList = dir.entryInfoList(QDir::Files | QDir::Readable); QRegularExpression rxCert(QLatin1String("^.+\\.(pem|der)$")); QRegularExpression rxSan(QLatin1String("^(.+\\.(?:pem|der))\\.san$")); QRegularExpression rxPubKey(QLatin1String("^(.+\\.(?:pem|der))\\.pubkey$")); QRegularExpression rxDigest(QLatin1String("^(.+\\.(?:pem|der))\\.digest-(md5|sha1)$")); QRegularExpressionMatch match; - foreach (QFileInfo fileInfo, fileInfoList) { + for (const QFileInfo &fileInfo : fileInfoList) { if ((match = rxCert.match(fileInfo.fileName())).hasMatch()) certInfoList << CertInfo(fileInfo, diff --git a/tests/auto/printsupport/kernel/qprinterinfo/tst_qprinterinfo.cpp b/tests/auto/printsupport/kernel/qprinterinfo/tst_qprinterinfo.cpp index bdddb93ed5..44ef264c67 100644 --- a/tests/auto/printsupport/kernel/qprinterinfo/tst_qprinterinfo.cpp +++ b/tests/auto/printsupport/kernel/qprinterinfo/tst_qprinterinfo.cpp @@ -340,11 +340,11 @@ void tst_QPrinterInfo::testAssignment() void tst_QPrinterInfo::namedPrinter() { - QList printers = QPrinterInfo::availablePrinters(); + const QList printers = QPrinterInfo::availablePrinters(); QStringList printerNames; - foreach (const QPrinterInfo &pi, printers) { + for (const QPrinterInfo &pi : printers) { QPrinterInfo pi2 = QPrinterInfo::printerInfo(pi.printerName()); QCOMPARE(pi2.printerName(), pi.printerName()); QCOMPARE(pi2.description(), pi.description()); diff --git a/tests/auto/tools/macdeployqt/tst_macdeployqt.cpp b/tests/auto/tools/macdeployqt/tst_macdeployqt.cpp index 9560854197..3953452bf8 100644 --- a/tests/auto/tools/macdeployqt/tst_macdeployqt.cpp +++ b/tests/auto/tools/macdeployqt/tst_macdeployqt.cpp @@ -199,7 +199,7 @@ void runVerifyDeployment(const QString &name) const QList parts = QString::fromLocal8Bit(libraries).split("dyld: loaded:"); const QString qtPath = QLibraryInfo::path(QLibraryInfo::PrefixPath); // Let assume Qt is not installed in system - foreach (QString part, parts) { + for (const QString &part : parts) { part = part.trimmed(); if (part.isEmpty()) continue; diff --git a/tests/baseline/shared/paintcommands.cpp b/tests/baseline/shared/paintcommands.cpp index 1af6de1e08..2aef532b28 100644 --- a/tests/baseline/shared/paintcommands.cpp +++ b/tests/baseline/shared/paintcommands.cpp @@ -745,8 +745,8 @@ void PaintCommands::runCommand(const QString &scriptLine) return; } QString firstWord = scriptLine.section(separators, 0, 0); - QList indices = s_commandHash.values(firstWord); - foreach(int idx, indices) { + const QList indices = s_commandHash.values(firstWord); + for (int idx : indices) { PaintCommandInfos command = s_commandInfoTable.at(idx); Q_ASSERT(command.regExp.isValid()); QRegularExpressionMatch match = command.regExp.match(scriptLine); diff --git a/tests/manual/gestures/graphicsview/main.cpp b/tests/manual/gestures/graphicsview/main.cpp index 615c5f4d43..a567376ac9 100644 --- a/tests/manual/gestures/graphicsview/main.cpp +++ b/tests/manual/gestures/graphicsview/main.cpp @@ -143,8 +143,8 @@ MainWindow::MainWindow() void MainWindow::setDirectory(const QString &path) { QDir dir(path); - QStringList files = dir.entryList(QDir::Files | QDir::Readable | QDir::NoDotAndDotDot); - foreach(const QString &file, files) { + const QStringList files = dir.entryList(QDir::Files | QDir::Readable | QDir::NoDotAndDotDot); + for (const QString &file : files) { QImageReader img(path + QLatin1Char('/') +file); QImage image = img.read(); if (!image.isNull()) { diff --git a/tests/manual/highdpi/kitchensink/dragwidget.cpp b/tests/manual/highdpi/kitchensink/dragwidget.cpp index 22393f0416..fe48ccf25d 100644 --- a/tests/manual/highdpi/kitchensink/dragwidget.cpp +++ b/tests/manual/highdpi/kitchensink/dragwidget.cpp @@ -84,8 +84,8 @@ void DragWidget::dropEvent(QDropEvent *event) { if (event->mimeData()->hasText()) { const QMimeData *mime = event->mimeData(); - QStringList pieces = mime->text().split(QRegularExpression("\\s+"), - Qt::SkipEmptyParts); + const QStringList pieces = mime->text().split(QRegularExpression("\\s+"), + Qt::SkipEmptyParts); QPoint position = event->pos(); QPoint hotSpot; @@ -98,7 +98,7 @@ void DragWidget::dropEvent(QDropEvent *event) dropTimer.start(500, this); update(); - foreach (QString piece, pieces) { + for (const QString &piece : pieces) { FramedLabel *newLabel = new FramedLabel(piece, this); newLabel->move(position - hotSpot); newLabel->show(); diff --git a/tests/manual/qgraphicsitemgroup/customitem.cpp b/tests/manual/qgraphicsitemgroup/customitem.cpp index 77b023337e..b305f74ae1 100644 --- a/tests/manual/qgraphicsitemgroup/customitem.cpp +++ b/tests/manual/qgraphicsitemgroup/customitem.cpp @@ -9,10 +9,10 @@ QList CustomScene::selectedCustomGroups() const { - QList all = selectedItems(); + const QList all = selectedItems(); QList groups; - foreach (QGraphicsItem *item, all) { + for (QGraphicsItem *item : all) { CustomGroup* group = qgraphicsitem_cast(item); if (group) groups.append(group); @@ -23,10 +23,10 @@ QList CustomScene::selectedCustomGroups() const QList CustomScene::selectedCustomItems() const { - QList all = selectedItems(); + const QList all = selectedItems(); QList items; - foreach (QGraphicsItem *item, all) { + for (QGraphicsItem *item : all) { CustomItem* citem = qgraphicsitem_cast(item); if (citem) items.append(citem); diff --git a/tests/manual/qgraphicsitemgroup/widget.cpp b/tests/manual/qgraphicsitemgroup/widget.cpp index d6005601ca..2ef479201a 100644 --- a/tests/manual/qgraphicsitemgroup/widget.cpp +++ b/tests/manual/qgraphicsitemgroup/widget.cpp @@ -95,15 +95,15 @@ void Widget::on_scaleItem_valueChanged(int value) void Widget::on_group_clicked() { - QList all = scene->selectedItems(); + const QList all = scene->selectedItems(); if (all.size() < 2) return; - QList items = scene->selectedCustomItems(); + const QList items = scene->selectedCustomItems(); QList groups = scene->selectedCustomGroups(); if (groups.size() == 1) { - foreach (CustomItem *item, items) { + for (CustomItem *item : items) { item->setSelected(false); groups[0]->addToGroup(item); } @@ -113,7 +113,7 @@ void Widget::on_group_clicked() CustomGroup* group = new CustomGroup; scene->addItem(group); - foreach (QGraphicsItem *item, all) { + for (QGraphicsItem *item : all) { item->setSelected(false); group->addToGroup(item); } @@ -124,9 +124,9 @@ void Widget::on_group_clicked() void Widget::on_dismantle_clicked() { - QList groups = scene->selectedCustomGroups(); + const QList groups = scene->selectedCustomGroups(); - foreach (CustomGroup *group, groups) { + for (CustomGroup *group : groups) { foreach (QGraphicsItem *item, group->childItems()) group->removeFromGroup(item); diff --git a/tests/manual/qlocale/window.cpp b/tests/manual/qlocale/window.cpp index 463360b9cd..a649250917 100644 --- a/tests/manual/qlocale/window.cpp +++ b/tests/manual/qlocale/window.cpp @@ -16,8 +16,8 @@ Window::Window() localeCombo->addItem("System", QLocale::system()); - QList locales = QLocale::matchingLocales(QLocale::AnyLanguage, QLocale::AnyScript, QLocale::AnyTerritory); - foreach (const QLocale &locale, locales) { + const QList locales = QLocale::matchingLocales(QLocale::AnyLanguage, QLocale::AnyScript, QLocale::AnyTerritory); + for (const QLocale &locale : locales) { QString label = QLocale::languageToString(locale.language()); label += QLatin1Char('/'); if (locale.script() != QLocale::AnyScript) { diff --git a/tests/manual/qscreen/propertywatcher.cpp b/tests/manual/qscreen/propertywatcher.cpp index 5eec9f275b..664350fdd4 100644 --- a/tests/manual/qscreen/propertywatcher.cpp +++ b/tests/manual/qscreen/propertywatcher.cpp @@ -85,8 +85,8 @@ void PropertyWatcher::setSubject(QObject *s, const QString &annotation) void PropertyWatcher::updateAllFields() { - QList fields = findChildren(); - foreach (PropertyField *field, fields) + const QList fields = findChildren(); + for (PropertyField *field : fields) field->propertyChanged(); emit updatedAllFields(this); }