From 51453936cc945ef78f36e7cd7c29210b826c523f Mon Sep 17 00:00:00 2001 From: Orgad Shaneh Date: Sat, 13 Jun 2020 23:39:57 +0300 Subject: [PATCH] Utils: Replace foreach with range-based for Change-Id: I9aeea9c029ffc56cbadc04edd20e9b35b154f986 Reviewed-by: hjk --- src/libs/utils/basetreeview.cpp | 5 ++-- src/libs/utils/buildablehelperlibrary.cpp | 8 +++--- src/libs/utils/checkablemessagebox.cpp | 6 +++-- src/libs/utils/codegeneration.cpp | 2 +- src/libs/utils/consoleprocess.cpp | 2 +- src/libs/utils/fancymainwindow.cpp | 6 ++--- src/libs/utils/fileinprojectfinder.cpp | 2 +- src/libs/utils/filenamevalidatinglineedit.cpp | 2 +- src/libs/utils/filesystemwatcher.cpp | 8 +++--- src/libs/utils/fileutils.cpp | 12 ++++----- src/libs/utils/flowlayout.cpp | 6 ++--- src/libs/utils/json.cpp | 17 +++++++----- src/libs/utils/listutils.h | 2 +- src/libs/utils/mapreduce.h | 4 +-- src/libs/utils/mimetypes/mimedatabase.cpp | 15 ++++++----- src/libs/utils/mimetypes/mimeglobpattern.cpp | 9 ++----- .../utils/mimetypes/mimemagicrulematcher.cpp | 2 +- src/libs/utils/mimetypes/mimeprovider.cpp | 26 +++++++++---------- src/libs/utils/mimetypes/mimetype.cpp | 9 +++---- src/libs/utils/namevaluemodel.cpp | 2 +- src/libs/utils/persistentsettings.cpp | 6 +++-- src/libs/utils/portlist.cpp | 6 ++--- src/libs/utils/qtcprocess.cpp | 4 +-- src/libs/utils/savedaction.cpp | 7 ++--- src/libs/utils/settingsaccessor.cpp | 2 +- src/libs/utils/settingsutils.h | 4 +-- src/libs/utils/stringutils.cpp | 2 +- src/libs/utils/styledbar.cpp | 3 ++- src/libs/utils/stylehelper.cpp | 3 ++- src/libs/utils/textfileformat.cpp | 3 ++- src/libs/utils/theme/theme.cpp | 3 ++- src/libs/utils/uncommentselection.cpp | 2 +- src/libs/utils/wizard.cpp | 6 ++--- src/libs/utils/wizard.h | 3 ++- 34 files changed, 104 insertions(+), 95 deletions(-) diff --git a/src/libs/utils/basetreeview.cpp b/src/libs/utils/basetreeview.cpp index 00b73002f8f..eb754dddb52 100644 --- a/src/libs/utils/basetreeview.cpp +++ b/src/libs/utils/basetreeview.cpp @@ -208,8 +208,9 @@ public: + 2 * fm.horizontalAdvance(QLatin1Char('m')); considerItems(column, q->indexAt(QPoint(1, 1)), &minimum, false); - QVariant extraIndices = m->data(QModelIndex(), BaseTreeView::ExtraIndicesForColumnWidth); - foreach (const QModelIndex &a, extraIndices.value()) + const QVariant extraIndices = m->data(QModelIndex(), BaseTreeView::ExtraIndicesForColumnWidth); + const QList values = extraIndices.value(); + for (const QModelIndex &a : values) considerItems(column, a, &minimum, true); return minimum; diff --git a/src/libs/utils/buildablehelperlibrary.cpp b/src/libs/utils/buildablehelperlibrary.cpp index 8419bf2bbe1..b1988bf8c35 100644 --- a/src/libs/utils/buildablehelperlibrary.cpp +++ b/src/libs/utils/buildablehelperlibrary.cpp @@ -195,7 +195,7 @@ bool BuildableHelperLibrary::copyFiles(const QString &sourcePath, *errorMessage = QCoreApplication::translate("ProjectExplorer::DebuggingHelperLibrary", "The target directory %1 could not be created.").arg(targetDirectory); return false; } - foreach (const QString &file, files) { + for (const QString &file : files) { const QString source = sourcePath + file; const QString dest = targetDirectory + file; const QFileInfo destInfo(dest); @@ -347,7 +347,7 @@ bool BuildableHelperLibrary::getHelperFileInfoFor(const QStringList &validBinary if (!info) return false; - foreach (const QString &binaryFilename, validBinaryFilenames) { + for (const QString &binaryFilename : validBinaryFilenames) { info->setFile(directory + binaryFilename); if (info->exists()) return true; @@ -365,7 +365,7 @@ QString BuildableHelperLibrary::byInstallDataHelper(const QString &sourcePath, // find the latest change to the sources QDateTime sourcesModified; if (!acceptOutdatedHelper) { - foreach (const QString &sourceFileName, sourceFileNames) { + for (const QString &sourceFileName : sourceFileNames) { const QDateTime fileModified = QFileInfo(sourcePath + sourceFileName).lastModified(); if (fileModified.isValid() && (!sourcesModified.isValid() || fileModified > sourcesModified)) sourcesModified = fileModified; @@ -383,7 +383,7 @@ QString BuildableHelperLibrary::byInstallDataHelper(const QString &sourcePath, QString newestHelper; QDateTime newestHelperModified = sourcesModified; // prevent using one that's older than the sources QFileInfo fileInfo; - foreach (const QString &installDirectory, installDirectories) { + for (const QString &installDirectory : installDirectories) { if (getHelperFileInfoFor(validBinaryFilenames, installDirectory, &fileInfo)) { if (!newestHelperModified.isValid() || (fileInfo.lastModified() > newestHelperModified)) { diff --git a/src/libs/utils/checkablemessagebox.cpp b/src/libs/utils/checkablemessagebox.cpp index b2109ccbb79..c2c6a4c6ce2 100644 --- a/src/libs/utils/checkablemessagebox.cpp +++ b/src/libs/utils/checkablemessagebox.cpp @@ -281,7 +281,8 @@ QPushButton *CheckableMessageBox::addButton(const QString &text, QDialogButtonBo QDialogButtonBox::StandardButton CheckableMessageBox::defaultButton() const { - foreach (QAbstractButton *b, d->buttonBox->buttons()) + const QList buttons = d->buttonBox->buttons(); + for (QAbstractButton *b : buttons) if (auto *pb = qobject_cast(b)) if (pb->isDefault()) return d->buttonBox->standardButton(pb); @@ -464,7 +465,8 @@ bool CheckableMessageBox::hasSuppressedQuestions(QSettings *settings) QTC_ASSERT(settings, return false); bool hasSuppressed = false; settings->beginGroup(QLatin1String(kDoNotAskAgainKey)); - foreach (const QString &subKey, settings->childKeys()) { + const QStringList childKeys = settings->childKeys(); + for (const QString &subKey : childKeys) { if (settings->value(subKey, false).toBool()) { hasSuppressed = true; break; diff --git a/src/libs/utils/codegeneration.cpp b/src/libs/utils/codegeneration.cpp index 697d876e0bc..e08c2d683b5 100644 --- a/src/libs/utils/codegeneration.cpp +++ b/src/libs/utils/codegeneration.cpp @@ -86,7 +86,7 @@ static void qtSection(const QStringList &qtIncludes, QTextStream &str) { QStringList sorted = qtIncludes; Utils::sort(sorted); - foreach (const QString &inc, sorted) { + for (const QString &inc : qAsConst(sorted)) { if (!inc.isEmpty()) str << QStringLiteral("#include <%1>\n").arg(inc); } diff --git a/src/libs/utils/consoleprocess.cpp b/src/libs/utils/consoleprocess.cpp index 3095c5ee9d7..265610cc190 100644 --- a/src/libs/utils/consoleprocess.cpp +++ b/src/libs/utils/consoleprocess.cpp @@ -301,7 +301,7 @@ static QString quoteWinArgument(const QString &arg) QString createWinCommandline(const QString &program, const QStringList &args) { QString programName = quoteWinCommand(program); - foreach (const QString &arg, args) { + for (const QString &arg : args) { programName += QLatin1Char(' '); programName += quoteWinArgument(arg); } diff --git a/src/libs/utils/fancymainwindow.cpp b/src/libs/utils/fancymainwindow.cpp index a16a3915803..be073198d90 100644 --- a/src/libs/utils/fancymainwindow.cpp +++ b/src/libs/utils/fancymainwindow.cpp @@ -475,9 +475,9 @@ void FancyMainWindow::saveSettings(QSettings *settings) const void FancyMainWindow::restoreSettings(const QSettings *settings) { QHash hash; - foreach (const QString &key, settings->childKeys()) { + const QStringList childKeys = settings->childKeys(); + for (const QString &key : childKeys) hash.insert(key, settings->value(key)); - } restoreSettings(hash); } @@ -552,7 +552,7 @@ void FancyMainWindow::addDockActionsToMenu(QMenu *menu) QTC_ASSERT(action2, return false); return stripAccelerator(action1->text()).toLower() < stripAccelerator(action2->text()).toLower(); }); - foreach (QAction *action, actions) + for (QAction *action : qAsConst(actions)) menu->addAction(action); menu->addAction(&d->m_showCentralWidget); menu->addAction(&d->m_menuSeparator1); diff --git a/src/libs/utils/fileinprojectfinder.cpp b/src/libs/utils/fileinprojectfinder.cpp index 3d8777f7d37..8d9c7b9f1a3 100644 --- a/src/libs/utils/fileinprojectfinder.cpp +++ b/src/libs/utils/fileinprojectfinder.cpp @@ -386,7 +386,7 @@ FileInProjectFinder::CacheEntry FileInProjectFinder::findInSearchPath( QStringList FileInProjectFinder::filesWithSameFileName(const QString &fileName) const { QStringList result; - foreach (const FilePath &f, m_projectFiles) { + for (const FilePath &f : m_projectFiles) { if (f.fileName() == fileName) result << f.toString(); } diff --git a/src/libs/utils/filenamevalidatinglineedit.cpp b/src/libs/utils/filenamevalidatinglineedit.cpp index 555cdc1a8d0..a3973a8c1ea 100644 --- a/src/libs/utils/filenamevalidatinglineedit.cpp +++ b/src/libs/utils/filenamevalidatinglineedit.cpp @@ -167,7 +167,7 @@ bool FileNameValidatingLineEdit::validateFileNameExtension(const QString &fileNa { // file extension if (!requiredExtensions.isEmpty()) { - foreach (const QString &requiredExtension, requiredExtensions) { + for (const QString &requiredExtension : requiredExtensions) { QString extension = QLatin1Char('.') + requiredExtension; if (fileName.endsWith(extension, Qt::CaseSensitive) && extension.count() < fileName.count()) return true; diff --git a/src/libs/utils/filesystemwatcher.cpp b/src/libs/utils/filesystemwatcher.cpp index 45ad77ec58f..0f83c17203f 100644 --- a/src/libs/utils/filesystemwatcher.cpp +++ b/src/libs/utils/filesystemwatcher.cpp @@ -282,7 +282,7 @@ void FileSystemWatcher::addFiles(const QStringList &files, WatchMode wm) << " limit currently: " << (d->m_files.size() + d->m_directories.size()) << " of " << d->m_staticData->maxFileOpen; QStringList toAdd; - foreach (const QString &file, files) { + for (const QString &file : files) { if (watchesFile(file)) { qWarning("FileSystemWatcher: File %s is already being watched", qPrintable(file)); continue; @@ -324,7 +324,7 @@ void FileSystemWatcher::removeFiles(const QStringList &files) if (debug) qDebug() << this << d->m_id << "removeFiles " << files; QStringList toRemove; - foreach (const QString &file, files) { + for (const QString &file : files) { WatchEntryMapIterator it = d->m_files.find(file); if (it == d->m_files.end()) { qWarning("FileSystemWatcher: File %s is not watched.", qPrintable(file)); @@ -372,7 +372,7 @@ void FileSystemWatcher::addDirectories(const QStringList &directories, WatchMode << " limit currently: " << (d->m_files.size() + d->m_directories.size()) << " of " << d->m_staticData->maxFileOpen; QStringList toAdd; - foreach (const QString &directory, directories) { + for (const QString &directory : directories) { if (watchesDirectory(directory)) { qWarning("FileSystemWatcher: Directory %s is already being watched.", qPrintable(directory)); continue; @@ -408,7 +408,7 @@ void FileSystemWatcher::removeDirectories(const QStringList &directories) qDebug() << this << d->m_id << "removeDirectories" << directories; QStringList toRemove; - foreach (const QString &directory, directories) { + for (const QString &directory : directories) { WatchEntryMapIterator it = d->m_directories.find(directory); if (it == d->m_directories.end()) { qWarning("FileSystemWatcher: Directory %s is not watched.", qPrintable(directory)); diff --git a/src/libs/utils/fileutils.cpp b/src/libs/utils/fileutils.cpp index f1ada61a810..4b55c083019 100644 --- a/src/libs/utils/fileutils.cpp +++ b/src/libs/utils/fileutils.cpp @@ -160,9 +160,9 @@ bool FileUtils::removeRecursively(const FilePath &filePath, QString *error) return false; } - QStringList fileNames = dir.entryList(QDir::Files | QDir::Hidden - | QDir::System | QDir::Dirs | QDir::NoDotAndDotDot); - foreach (const QString &fileName, fileNames) { + const QStringList fileNames = dir.entryList( + QDir::Files | QDir::Hidden | QDir::System | QDir::Dirs | QDir::NoDotAndDotDot); + for (const QString &fileName : fileNames) { if (!removeRecursively(filePath / fileName, error)) return false; } @@ -219,9 +219,9 @@ bool FileUtils::copyRecursively(const FilePath &srcFilePath, const FilePath &tgt } } QDir sourceDir(srcFilePath.toString()); - QStringList fileNames = sourceDir.entryList(QDir::Files | QDir::Dirs | QDir::NoDotAndDotDot - | QDir::Hidden | QDir::System); - foreach (const QString &fileName, fileNames) { + const QStringList fileNames = sourceDir.entryList( + QDir::Files | QDir::Dirs | QDir::NoDotAndDotDot | QDir::Hidden | QDir::System); + for (const QString &fileName : fileNames) { const FilePath newSrcFilePath = srcFilePath / fileName; const FilePath newTgtFilePath = tgtFilePath / fileName; if (!copyRecursively(newSrcFilePath, newTgtFilePath, error, copyHelper)) diff --git a/src/libs/utils/flowlayout.cpp b/src/libs/utils/flowlayout.cpp index 3c3236b4c89..5df9a99cad3 100644 --- a/src/libs/utils/flowlayout.cpp +++ b/src/libs/utils/flowlayout.cpp @@ -117,8 +117,7 @@ QSize FlowLayout::sizeHint() const QSize FlowLayout::minimumSize() const { QSize size; - QLayoutItem *item; - foreach (item, itemList) + for (QLayoutItem *item : itemList) size = size.expandedTo(item->minimumSize()); int left, top, right, bottom; @@ -136,8 +135,7 @@ int FlowLayout::doLayout(const QRect &rect, bool testOnly) const int y = effectiveRect.y(); int lineHeight = 0; - QLayoutItem *item; - foreach (item, itemList) { + for (QLayoutItem *item : itemList) { QWidget *wid = item->widget(); int spaceX = horizontalSpacing(); if (spaceX == -1) diff --git a/src/libs/utils/json.cpp b/src/libs/utils/json.cpp index b195e134d4c..ff2b5a59488 100644 --- a/src/libs/utils/json.cpp +++ b/src/libs/utils/json.cpp @@ -36,7 +36,7 @@ using namespace Utils; JsonMemoryPool::~JsonMemoryPool() { - foreach (char *obj, _objs) { + for (char *obj : qAsConst(_objs)) { reinterpret_cast(obj)->~JsonValue(); delete[] obj; } @@ -92,7 +92,8 @@ JsonValue *JsonValue::build(const QVariant &variant, JsonMemoryPool *pool) case QVariant::List: { auto newValue = new (pool) JsonArrayValue; - foreach (const QVariant &element, variant.toList()) + const QList list = variant.toList(); + for (const QVariant &element : list) newValue->addElement(build(element, pool)); return newValue; } @@ -204,7 +205,8 @@ QStringList JsonSchema::validTypes(JsonObjectValue *v) return validTypes(ov); if (JsonArrayValue *av = getArrayValue(kType(), v)) { - foreach (JsonValue *v, av->elements()) { + const QList elements = av->elements(); + for (JsonValue *v : elements) { if (JsonStringValue *sv = v->toString()) all.append(sv->value()); else if (JsonObjectValue *ov = v->toObject()) @@ -665,19 +667,20 @@ JsonDoubleValue *JsonSchema::getDoubleValue(const QString &name, JsonObjectValue JsonSchemaManager::JsonSchemaManager(const QStringList &searchPaths) : m_searchPaths(searchPaths) { - foreach (const QString &path, m_searchPaths) { + for (const QString &path : searchPaths) { QDir dir(path); if (!dir.exists()) continue; dir.setNameFilters(QStringList(QLatin1String("*.json"))); - foreach (const QFileInfo &fi, dir.entryInfoList()) + const QList entries = dir.entryInfoList(); + for (const QFileInfo &fi : entries) m_schemas.insert(fi.baseName(), JsonSchemaData(fi.absoluteFilePath())); } } JsonSchemaManager::~JsonSchemaManager() { - foreach (const JsonSchemaData &schemaData, m_schemas) + for (const JsonSchemaData &schemaData : qAsConst(m_schemas)) delete schemaData.m_schema; } @@ -701,7 +704,7 @@ JsonSchema *JsonSchemaManager::schemaByName(const QString &baseName) const { QHash::iterator it = m_schemas.find(baseName); if (it == m_schemas.end()) { - foreach (const QString &path, m_searchPaths) { + for (const QString &path : m_searchPaths) { QFileInfo candidate(path + baseName + ".json"); if (candidate.exists()) { m_schemas.insert(baseName, candidate.absoluteFilePath()); diff --git a/src/libs/utils/listutils.h b/src/libs/utils/listutils.h index a116801176e..edfe9991179 100644 --- a/src/libs/utils/listutils.h +++ b/src/libs/utils/listutils.h @@ -33,7 +33,7 @@ template QList qwConvertList(const QList &list) { QList convertedList; - foreach (T2 listEntry, list) { + for (T2 listEntry : list) { convertedList << qobject_cast(listEntry); } return convertedList; diff --git a/src/libs/utils/mapreduce.h b/src/libs/utils/mapreduce.h index 88eceda5301..255ef825786 100644 --- a/src/libs/utils/mapreduce.h +++ b/src/libs/utils/mapreduce.h @@ -149,7 +149,7 @@ protected: return; const double progressPerMap = MAX_PROGRESS / double(m_size); double progress = m_successfullyFinishedMapCount * progressPerMap; - foreach (const QFutureWatcher *watcher, m_mapWatcher) { + for (const QFutureWatcher *watcher : qAsConst(m_mapWatcher)) { if (watcher->progressMinimum() != watcher->progressMaximum()) { const double range = watcher->progressMaximum() - watcher->progressMinimum(); progress += (watcher->progressValue() - watcher->progressMinimum()) / range * progressPerMap; @@ -160,7 +160,7 @@ protected: void cancelAll() { - foreach (QFutureWatcher *watcher, m_mapWatcher) + for (QFutureWatcher *watcher : qAsConst(m_mapWatcher)) watcher->cancel(); } diff --git a/src/libs/utils/mimetypes/mimedatabase.cpp b/src/libs/utils/mimetypes/mimedatabase.cpp index 8a85a43876f..cffcaab75bf 100644 --- a/src/libs/utils/mimetypes/mimedatabase.cpp +++ b/src/libs/utils/mimetypes/mimedatabase.cpp @@ -207,7 +207,7 @@ MimeType MimeDatabasePrivate::mimeTypeForFileNameAndData(const QString &fileName return candidateByData; } // If there is a glob match that is a sub class of sniffedMime, use it - foreach (const QString &m, candidatesByName) { + for (const QString &m : qAsConst(candidatesByName)) { if (inherits(m, sniffedMime)) { // We have magic + pattern pointing to this, so it's a pretty good match *accuracyPtr = 100; @@ -247,7 +247,8 @@ bool MimeDatabasePrivate::inherits(const QString &mime, const QString &parent) const QString current = toCheck.pop(); if (current == resolvedParent) return true; - foreach (const QString &par, provider()->parents(current)) { + const QStringList parents = provider()->parents(current); + for (const QString &par : parents) { int seenSize = seen.size(); seen.insert(par); if (seen.size() != seenSize) // haven't seen before, so add @@ -348,13 +349,14 @@ QString Utils::allFiltersString(QString *allFilesFilter) { MimeDatabase mdb; QSet uniqueFilters; - foreach (const MimeType &mt, mdb.allMimeTypes()) { + const QList allMimeTypes = mdb.allMimeTypes(); + for (const MimeType &mt : allMimeTypes) { const QString &filterString = mt.filterString(); if (!filterString.isEmpty()) uniqueFilters.insert(mt.filterString()); } QStringList filters; - foreach (const QString &filter, uniqueFilters) + for (const QString &filter : uniqueFilters) filters.append(filter); filters.sort(); const QString allFiles = allFilesFilterString(); @@ -384,7 +386,8 @@ QStringList Utils::allGlobPatterns() MimeDatabase mdb; QStringList patterns; - foreach (const MimeType &mt, mdb.allMimeTypes()) + const QList allMimeTypes = mdb.allMimeTypes(); + for (const MimeType &mt : allMimeTypes) patterns.append(mt.globPatterns()); return patterns; } @@ -522,7 +525,7 @@ QList MimeDatabase::mimeTypesForFileName(const QString &fileName) cons QStringList matches = d->mimeTypeForFileName(fileName); QList mimes; matches.sort(); // Make it deterministic - foreach (const QString &mime, matches) + for (const QString &mime : qAsConst(matches)) mimes.append(d->mimeTypeForName(mime)); return mimes; } diff --git a/src/libs/utils/mimetypes/mimeglobpattern.cpp b/src/libs/utils/mimetypes/mimeglobpattern.cpp index 097fca365b7..d67d695d003 100644 --- a/src/libs/utils/mimetypes/mimeglobpattern.cpp +++ b/src/libs/utils/mimetypes/mimeglobpattern.cpp @@ -191,11 +191,7 @@ void MimeAllGlobPatterns::removeMimeType(const QString &mimeType) void MimeGlobPatternList::match(MimeGlobMatchResult &result, const QString &fileName) const { - - MimeGlobPatternList::const_iterator it = this->constBegin(); - const MimeGlobPatternList::const_iterator endIt = this->constEnd(); - for (; it != endIt; ++it) { - const MimeGlobPattern &glob = *it; + for (const MimeGlobPattern &glob : *this) { if (glob.matchFileName(fileName)) result.addMatch(glob.mimeType(), glob.weight(), glob.pattern()); } @@ -217,9 +213,8 @@ QStringList MimeAllGlobPatterns::matchingGlobs(const QString &fileName, QString // (toLower because fast patterns are always case-insensitive and saved as lowercase) const QStringList matchingMimeTypes = m_fastPatterns.value(simpleExtension); - foreach (const QString &mime, matchingMimeTypes) { + for (const QString &mime : matchingMimeTypes) result.addMatch(mime, 50, QLatin1String("*.") + simpleExtension); - } // Can't return yet; *.tar.bz2 has to win over *.bz2, so we need the low-weight mimetypes anyway, // at least those with weight 50. } diff --git a/src/libs/utils/mimetypes/mimemagicrulematcher.cpp b/src/libs/utils/mimetypes/mimemagicrulematcher.cpp index 7b6d9bf1707..3bf5f7415bc 100644 --- a/src/libs/utils/mimetypes/mimemagicrulematcher.cpp +++ b/src/libs/utils/mimetypes/mimemagicrulematcher.cpp @@ -88,7 +88,7 @@ QList MimeMagicRuleMatcher::magicRules() const // Check for a match on contents of a file bool MimeMagicRuleMatcher::matches(const QByteArray &data) const { - foreach (const MimeMagicRule &magicRule, m_list) { + for (const MimeMagicRule &magicRule : m_list) { if (magicRule.matches(data)) return true; } diff --git a/src/libs/utils/mimetypes/mimeprovider.cpp b/src/libs/utils/mimetypes/mimeprovider.cpp index 11f5a173034..2c16141f5d9 100644 --- a/src/libs/utils/mimetypes/mimeprovider.cpp +++ b/src/libs/utils/mimetypes/mimeprovider.cpp @@ -243,7 +243,7 @@ bool MimeProviderBase::shouldCheck() // // Then check if new cache files appeared // const QStringList cacheFileNames = QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, QLatin1String("mime/mime.cache")); // if (cacheFileNames != m_cacheFileNames) { -// foreach (const QString &cacheFileName, cacheFileNames) { +// for (const QString &cacheFileName : cacheFileNames) { // CacheFile *cacheFile = m_cacheFiles.findCacheFile(cacheFileName); // if (!cacheFile) { // //qDebug() << "new file:" << cacheFileName; @@ -288,7 +288,7 @@ bool MimeProviderBase::shouldCheck() // const QString lowerFileName = fileName.toLower(); // MimeGlobMatchResult result; // // TODO this parses in the order (local, global). Check that it handles "NOGLOBS" correctly. -// foreach (CacheFile *cacheFile, m_cacheFiles) { +// for (CacheFile *cacheFile : qAsConst(m_cacheFiles)) { // matchGlobList(result, cacheFile, cacheFile->getUint32(PosLiteralListOffset), fileName); // matchGlobList(result, cacheFile, cacheFile->getUint32(PosGlobListOffset), fileName); // const int reverseSuffixTreeOffset = cacheFile->getUint32(PosReverseSuffixTreeOffset); @@ -400,7 +400,7 @@ bool MimeProviderBase::shouldCheck() //MimeType MimeBinaryProvider::findByMagic(const QByteArray &data, int *accuracyPtr) //{ // checkCache(); -// foreach (CacheFile *cacheFile, m_cacheFiles) { +// for (CacheFile *cacheFile : qAsConst(m_cacheFiles)) { // const int magicListOffset = cacheFile->getUint32(PosMagicListOffset); // const int numMatches = cacheFile->getUint32(magicListOffset); // //const int maxExtent = cacheFile->getUint32(magicListOffset + 4); @@ -428,7 +428,7 @@ bool MimeProviderBase::shouldCheck() // checkCache(); // const QByteArray mimeStr = mime.toLatin1(); // QStringList result; -// foreach (CacheFile *cacheFile, m_cacheFiles) { +// for (CacheFile *cacheFile : qAsConst(m_cacheFiles)) { // const int parentListOffset = cacheFile->getUint32(PosParentListOffset); // const int numEntries = cacheFile->getUint32(parentListOffset); @@ -468,7 +468,7 @@ bool MimeProviderBase::shouldCheck() //{ // checkCache(); // const QByteArray input = name.toLatin1(); -// foreach (CacheFile *cacheFile, m_cacheFiles) { +// for (CacheFile *cacheFile : qAsConst(m_cacheFiles)) { // const int aliasListOffset = cacheFile->getUint32(PosAliasListOffset); // const int numEntries = cacheFile->getUint32(aliasListOffset); // int begin = 0; @@ -499,7 +499,7 @@ bool MimeProviderBase::shouldCheck() // checkCache(); // QStringList result; // const QByteArray input = name.toLatin1(); -// foreach (CacheFile *cacheFile, m_cacheFiles) { +// for (CacheFile *cacheFile : qAsConst(m_cacheFiles)) { // const int aliasListOffset = cacheFile->getUint32(PosAliasListOffset); // const int numEntries = cacheFile->getUint32(aliasListOffset); // for (int pos = 0; pos < numEntries; ++pos) { @@ -525,7 +525,7 @@ bool MimeProviderBase::shouldCheck() // // Unfortunately mime.cache doesn't have a full list of all mimetypes. // // So we have to parse the plain-text files called "types". // const QStringList typesFilenames = QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, QLatin1String("mime/types")); -// foreach (const QString &typeFilename, typesFilenames) { +// for (const QString &typeFilename : typesFilenames) { // QFile file(typeFilename); // if (file.open(QIODevice::ReadOnly)) { // while (!file.atEnd()) { @@ -677,7 +677,7 @@ bool MimeProviderBase::shouldCheck() //{ // checkCache(); // const QByteArray inputMime = data.name.toLatin1(); -// foreach (CacheFile *cacheFile, m_cacheFiles) { +// for (CacheFile *cacheFile : qAsConst(m_cacheFiles)) { // const QString icon = iconForMime(cacheFile, PosIconsListOffset, inputMime); // if (!icon.isEmpty()) { // data.iconName = icon; @@ -690,7 +690,7 @@ bool MimeProviderBase::shouldCheck() //{ // checkCache(); // const QByteArray inputMime = data.name.toLatin1(); -// foreach (CacheFile *cacheFile, m_cacheFiles) { +// for (CacheFile *cacheFile : qAsConst(m_cacheFiles)) { // const QString icon = iconForMime(cacheFile, PosGenericIconsListOffset, inputMime); // if (!icon.isEmpty()) { // data.genericIconName = icon; @@ -732,7 +732,7 @@ MimeType MimeXMLProvider::findByMagic(const QByteArray &data, int *accuracyPtr) QString candidate; - foreach (const MimeMagicRuleMatcher &matcher, m_magicMatchers) { + for (const MimeMagicRuleMatcher &matcher : qAsConst(m_magicMatchers)) { if (matcher.matches(data)) { const int priority = matcher.priority(); if (priority > *accuracyPtr) { @@ -747,7 +747,7 @@ MimeType MimeXMLProvider::findByMagic(const QByteArray &data, int *accuracyPtr) QMap > MimeXMLProvider::magicRulesForMimeType(const MimeType &mimeType) { QMap > result; - foreach (const MimeMagicRuleMatcher &matcher, m_magicMatchers) { + for (const MimeMagicRuleMatcher &matcher : qAsConst(m_magicMatchers)) { if (mimeType.matchesName(matcher.mimetype())) result[matcher.priority()].append(matcher.magicRules()); } @@ -759,7 +759,7 @@ void MimeXMLProvider::setGlobPatternsForMimeType(const MimeType &mimeType, const // remove all previous globs m_mimeTypeGlobs.removeMimeType(mimeType.name()); // add new patterns as case-insensitive default-weight patterns - foreach (const QString &pattern, patterns) + for (const QString &pattern : patterns) addGlobPattern(MimeGlobPattern(pattern, mimeType.name())); mimeType.d->globPatterns = patterns; } @@ -811,7 +811,7 @@ void MimeXMLProvider::ensureLoaded() } } - foreach (const QString &file, allFiles) + for (const QString &file : qAsConst(allFiles)) load(file); } } diff --git a/src/libs/utils/mimetypes/mimetype.cpp b/src/libs/utils/mimetypes/mimetype.cpp index 14f2399720d..c27df1376cd 100644 --- a/src/libs/utils/mimetypes/mimetype.cpp +++ b/src/libs/utils/mimetypes/mimetype.cpp @@ -308,17 +308,16 @@ QStringList MimeType::parentMimeTypes() const static void collectParentMimeTypes(const QString &mime, QStringList &allParents) { - QStringList parents = MimeDatabasePrivate::instance()->provider()->parents(mime); - foreach (const QString &parent, parents) { + const QStringList parents = MimeDatabasePrivate::instance()->provider()->parents(mime); + for (const QString &parent : parents) { // I would use QSet, but since order matters I better not if (!allParents.contains(parent)) allParents.append(parent); } // We want a breadth-first search, so that the least-specific parent (octet-stream) is last // This means iterating twice, unfortunately. - foreach (const QString &parent, parents) { + for (const QString &parent : parents) collectParentMimeTypes(parent, allParents); - } } /*! @@ -364,7 +363,7 @@ QStringList MimeType::suffixes() const MimeDatabasePrivate::instance()->provider()->loadMimeTypePrivate(*d); QStringList result; - foreach (const QString &pattern, d->globPatterns) { + for (const QString &pattern : d->globPatterns) { const QString suffix = suffixFromPattern(pattern); if (!suffix.isEmpty()) result.append(suffix); diff --git a/src/libs/utils/namevaluemodel.cpp b/src/libs/utils/namevaluemodel.cpp index 0486485e711..299da11faef 100644 --- a/src/libs/utils/namevaluemodel.cpp +++ b/src/libs/utils/namevaluemodel.cpp @@ -48,7 +48,7 @@ public: m_resultNameValueDictionary.modify(m_items); // Add removed variables again and mark them as "" so // that the user can actually see those removals: - foreach (const NameValueItem &item, m_items) { + for (const NameValueItem &item : qAsConst(m_items)) { if (item.operation == NameValueItem::Unset) m_resultNameValueDictionary.set(item.name, NameValueModel::tr("")); } diff --git a/src/libs/utils/persistentsettings.cpp b/src/libs/utils/persistentsettings.cpp index a0ba53ed255..39418816e05 100644 --- a/src/libs/utils/persistentsettings.cpp +++ b/src/libs/utils/persistentsettings.cpp @@ -374,15 +374,17 @@ static void writeVariantValue(QXmlStreamWriter &w, const Context &ctx, { switch (static_cast(variant.type())) { case static_cast(QVariant::StringList): - case static_cast(QVariant::List): + case static_cast(QVariant::List): { w.writeStartElement(ctx.valueListElement); w.writeAttribute(ctx.typeAttribute, QLatin1String(QVariant::typeToName(QVariant::List))); if (!key.isEmpty()) w.writeAttribute(ctx.keyAttribute, key); - foreach (const QVariant &var, variant.toList()) + const QList list = variant.toList(); + for (const QVariant &var : list) writeVariantValue(w, ctx, var); w.writeEndElement(); break; + } case static_cast(QVariant::Map): { w.writeStartElement(ctx.valueMapElement); w.writeAttribute(ctx.typeAttribute, QLatin1String(QVariant::typeToName(QVariant::Map))); diff --git a/src/libs/utils/portlist.cpp b/src/libs/utils/portlist.cpp index 6fb9ecb89f0..5eabc7f2f9e 100644 --- a/src/libs/utils/portlist.cpp +++ b/src/libs/utils/portlist.cpp @@ -164,7 +164,7 @@ bool PortList::hasMore() const { return !d->ranges.isEmpty(); } bool PortList::contains(Port port) const { - foreach (const Internal::Range &r, d->ranges) { + for (const Internal::Range &r : d->ranges) { if (port >= r.first && port <= r.second) return true; } @@ -174,7 +174,7 @@ bool PortList::contains(Port port) const int PortList::count() const { int n = 0; - foreach (const Internal::Range &r, d->ranges) + for (const Internal::Range &r : d->ranges) n += r.second.number() - r.first.number() + 1; return n; } @@ -194,7 +194,7 @@ Port PortList::getNext() QString PortList::toString() const { QString stringRep; - foreach (const Internal::Range &range, d->ranges) { + for (const Internal::Range &range : d->ranges) { stringRep += QString::number(range.first.number()); if (range.second != range.first) stringRep += QLatin1Char('-') + QString::number(range.second.number()); diff --git a/src/libs/utils/qtcprocess.cpp b/src/libs/utils/qtcprocess.cpp index 3855ee631ee..9c6ea69b56c 100644 --- a/src/libs/utils/qtcprocess.cpp +++ b/src/libs/utils/qtcprocess.cpp @@ -626,7 +626,7 @@ void QtcProcess::addArg(QString *args, const QString &arg, OsType osType) QString QtcProcess::joinArgs(const QStringList &args, OsType osType) { QString ret; - foreach (const QString &arg, args) + for (const QString &arg : args) addArg(&ret, arg, osType); return ret; } @@ -642,7 +642,7 @@ void QtcProcess::addArgs(QString *args, const QString &inArgs) void QtcProcess::addArgs(QString *args, const QStringList &inArgs) { - foreach (const QString &arg, inArgs) + for (const QString &arg : inArgs) addArg(args, arg); } diff --git a/src/libs/utils/savedaction.cpp b/src/libs/utils/savedaction.cpp index beec2d33089..292bbb974e1 100644 --- a/src/libs/utils/savedaction.cpp +++ b/src/libs/utils/savedaction.cpp @@ -333,7 +333,8 @@ void SavedAction::actionTriggered(bool) setValue(isChecked()); if (actionGroup() && actionGroup()->isExclusive()) { // FIXME: should be taken care of more directly - foreach (QAction *act, actionGroup()->actions()) + const QList actions = actionGroup()->actions(); + for (QAction *act : actions) if (auto dact = qobject_cast(act)) dact->setValue(bool(act == this)); } @@ -360,13 +361,13 @@ void SavedActionSet::insert(SavedAction *action, QWidget *widget) void SavedActionSet::apply(QSettings *settings) { - foreach (SavedAction *action, m_list) + for (SavedAction *action : qAsConst(m_list)) action->apply(settings); } void SavedActionSet::finish() { - foreach (SavedAction *action, m_list) + for (SavedAction *action : qAsConst(m_list)) action->disconnectWidget(); } diff --git a/src/libs/utils/settingsaccessor.cpp b/src/libs/utils/settingsaccessor.cpp index 53f926812b1..6c692ed2142 100644 --- a/src/libs/utils/settingsaccessor.cpp +++ b/src/libs/utils/settingsaccessor.cpp @@ -406,7 +406,7 @@ QString VersionUpgrader::backupExtension() const */ QVariantMap VersionUpgrader::renameKeys(const QList &changes, QVariantMap map) const { - foreach (const Change &change, changes) { + for (const Change &change : changes) { QVariantMap::iterator oldSetting = map.find(change.first); if (oldSetting != map.end()) { map.insert(change.second, oldSetting.value()); diff --git a/src/libs/utils/settingsutils.h b/src/libs/utils/settingsutils.h index c693dc74428..13a03c41de8 100644 --- a/src/libs/utils/settingsutils.h +++ b/src/libs/utils/settingsutils.h @@ -39,8 +39,8 @@ void fromSettings(const QString &postFix, SettingsClassT *obj) { QVariantMap map; - const QStringList &keys = s->allKeys(); - foreach (const QString &key, keys) + const QStringList keys = s->allKeys(); + for (const QString &key : keys) map.insert(key, s->value(key)); QString group = postFix; diff --git a/src/libs/utils/stringutils.cpp b/src/libs/utils/stringutils.cpp index 070abd79a1f..888428790b2 100644 --- a/src/libs/utils/stringutils.cpp +++ b/src/libs/utils/stringutils.cpp @@ -261,7 +261,7 @@ QTCREATOR_UTILS_EXPORT bool readMultiLineString(const QJsonValue &value, QString } else if (value.isArray()) { QJsonArray array = value.toArray(); QStringList lines; - foreach (const QJsonValue &v, array) { + for (const QJsonValue &v : array) { if (!v.isString()) return false; lines.append(v.toString()); diff --git a/src/libs/utils/styledbar.cpp b/src/libs/utils/styledbar.cpp index 7bd0dcf95dc..48fcec2527f 100644 --- a/src/libs/utils/styledbar.cpp +++ b/src/libs/utils/styledbar.cpp @@ -53,7 +53,8 @@ void StyledBar::setLightColored(bool lightColored) if (isLightColored() == lightColored) return; setProperty("lightColored", lightColored); - foreach (QWidget *childWidget, findChildren()) + const QList children = findChildren(); + for (QWidget *childWidget : children) childWidget->style()->polish(childWidget); } diff --git a/src/libs/utils/stylehelper.cpp b/src/libs/utils/stylehelper.cpp index 0d88e8df4fc..6f8868cc7b2 100644 --- a/src/libs/utils/stylehelper.cpp +++ b/src/libs/utils/stylehelper.cpp @@ -187,7 +187,8 @@ void StyleHelper::setBaseColor(const QColor &newcolor) if (color.isValid() && color != m_baseColor) { m_baseColor = color; - foreach (QWidget *w, QApplication::topLevelWidgets()) + const QList widgets = QApplication::topLevelWidgets(); + for (QWidget *w : widgets) w->update(); } } diff --git a/src/libs/utils/textfileformat.cpp b/src/libs/utils/textfileformat.cpp index 814cb0256f0..6e7a7536a00 100644 --- a/src/libs/utils/textfileformat.cpp +++ b/src/libs/utils/textfileformat.cpp @@ -41,7 +41,8 @@ QDebug operator<<(QDebug d, const TextFileFormat &format) nsp << "TextFileFormat: "; if (format.codec) { nsp << format.codec->name(); - foreach (const QByteArray &alias, format.codec->aliases()) + const QList aliases = format.codec->aliases(); + for (const QByteArray &alias : aliases) nsp << ' ' << alias; } else { nsp << "NULL"; diff --git a/src/libs/utils/theme/theme.cpp b/src/libs/utils/theme/theme.cpp index 645550261f7..15963f2a564 100644 --- a/src/libs/utils/theme/theme.cpp +++ b/src/libs/utils/theme/theme.cpp @@ -181,7 +181,8 @@ void Theme::readSettings(QSettings &settings) } { settings.beginGroup(QLatin1String("Palette")); - foreach (const QString &key, settings.allKeys()) + const QStringList allKeys = settings.allKeys(); + for (const QString &key : allKeys) d->palette[key] = readNamedColor(settings.value(key).toString()).first; settings.endGroup(); } diff --git a/src/libs/utils/uncommentselection.cpp b/src/libs/utils/uncommentselection.cpp index 6771f3f4ea4..185293c07a2 100644 --- a/src/libs/utils/uncommentselection.cpp +++ b/src/libs/utils/uncommentselection.cpp @@ -209,7 +209,7 @@ void Utils::unCommentSelection(QPlainTextEdit *edit, const CommentDefinition &de } } else { const QString text = block.text(); - foreach (QChar c, text) { + for (QChar c : text) { if (!c.isSpace()) { if (definition.isAfterWhiteSpaces) cursor.setPosition(block.position() + text.indexOf(c)); diff --git a/src/libs/utils/wizard.cpp b/src/libs/utils/wizard.cpp index c3a850b28b6..5c0ba3876d3 100644 --- a/src/libs/utils/wizard.cpp +++ b/src/libs/utils/wizard.cpp @@ -385,9 +385,9 @@ QSet Wizard::fieldNames() const QHash Wizard::variables() const { QHash result; - foreach (const QString &f, fieldNames()) { + const QSet fields = fieldNames(); + for (const QString &f : fields) result.insert(f, field(f)); - } return result; } @@ -410,7 +410,7 @@ void Wizard::showVariables() QHash vars = variables(); QList keys = vars.keys(); sort(keys); - foreach (const QString &key, keys) { + for (const QString &key : qAsConst(keys)) { const QVariant &v = vars.value(key); result += QLatin1String(" ") + key + QLatin1String("") diff --git a/src/libs/utils/wizard.h b/src/libs/utils/wizard.h index 5f776f71e85..bce47fc3a62 100644 --- a/src/libs/utils/wizard.h +++ b/src/libs/utils/wizard.h @@ -55,7 +55,8 @@ public: template T *find() const { - foreach (int id, pageIds()) { + const QList pages = pageIds(); + for (int id : pages) { if (T *result = qobject_cast(page(id))) return result; }