diff --git a/src/plugins/git/branchdialog.cpp b/src/plugins/git/branchdialog.cpp index 11c14f80532237cfd0535ef4f7c2b6a05cc43475..7b78590f1f6e4c8c87db19e1aa26ecebe4aeac27 100644 --- a/src/plugins/git/branchdialog.cpp +++ b/src/plugins/git/branchdialog.cpp @@ -33,11 +33,13 @@ #include "gitconstants.h" #include "ui_branchdialog.h" -#include <utils/qtcassert.h> -#include <utils/execmenu.h> #include <vcsbase/vcsoutputwindow.h> #include <coreplugin/documentmanager.h> +#include <utils/asconst.h> +#include <utils/execmenu.h> +#include <utils/qtcassert.h> + #include <QAction> #include <QItemSelectionModel> #include <QMessageBox> @@ -217,7 +219,7 @@ void BranchDialog::checkout() QList<Stash> stashes; client->synchronousStashList(m_repository, &stashes); - foreach (const Stash &stash, stashes) { + for (const Stash &stash : Utils::asConst(stashes)) { if (stash.message.startsWith(popMessageStart)) { branchCheckoutDialog.foundStashForNextBranch(); break; @@ -245,7 +247,7 @@ void BranchDialog::checkout() QString stashName; client->synchronousStashList(m_repository, &stashes); - foreach (const Stash &stash, stashes) { + for (const Stash &stash : Utils::asConst(stashes)) { if (stash.message.startsWith(popMessageStart)) { stashName = stash.name; break; diff --git a/src/plugins/git/branchmodel.cpp b/src/plugins/git/branchmodel.cpp index 85f91886f587361e334070562a366f92c0555c72..11aa83229721a1258a92e70b7304a2be27f39a0d 100644 --- a/src/plugins/git/branchmodel.cpp +++ b/src/plugins/git/branchmodel.cpp @@ -27,10 +27,12 @@ #include "gitclient.h" #include "gitconstants.h" -#include <utils/qtcassert.h> #include <vcsbase/vcsoutputwindow.h> #include <vcsbase/vcscommand.h> +#include <utils/asconst.h> +#include <utils/qtcassert.h> + #include <QDateTime> #include <QFont> @@ -137,7 +139,7 @@ public: fn.append(nodes.first()->sha); nodes.removeFirst(); - foreach (const BranchNode *n, nodes) + for (const BranchNode *n : Utils::asConst(nodes)) fn.append(n->name); return fn; @@ -167,7 +169,7 @@ public: { if (children.count() > 0) { QStringList names; - foreach (BranchNode *n, children) { + for (BranchNode *n : children) { names.append(n->childrenNames()); } return names; @@ -340,9 +342,10 @@ Qt::ItemFlags BranchModel::flags(const QModelIndex &index) const void BranchModel::clear() { - foreach (BranchNode *root, m_rootNode->children) + for (BranchNode *root : Utils::asConst(m_rootNode->children)) { while (root->count()) delete root->children.takeLast(); + } if (hasTags()) m_rootNode->children.takeLast(); @@ -368,7 +371,7 @@ bool BranchModel::refresh(const QString &workingDirectory, QString *errorMessage m_workingDirectory = workingDirectory; const QStringList lines = output.split('\n'); - foreach (const QString &l, lines) + for (const QString &l : lines) parseOutputLine(l); if (m_currentBranch) { @@ -558,8 +561,8 @@ bool BranchModel::branchIsMerged(const QModelIndex &idx) VcsOutputWindow::appendError(errorMessage); } - QStringList lines = output.split('\n', QString::SkipEmptyParts); - foreach (const QString &l, lines) { + const QStringList lines = output.split('\n', QString::SkipEmptyParts); + for (const QString &l : lines) { QString currentBranch = l.mid(2); // remove first letters (those are either // " " or "* " depending on whether it is // the currently checked out branch or not) diff --git a/src/plugins/git/commitdata.cpp b/src/plugins/git/commitdata.cpp index 26fecc0ee096e2e5a49dda9275047829989ea834..d8a2edc620208b8c1c34b424b2a01f33a3289f15 100644 --- a/src/plugins/git/commitdata.cpp +++ b/src/plugins/git/commitdata.cpp @@ -24,6 +24,7 @@ ****************************************************************************/ #include "commitdata.h" + #include <utils/algorithm.h> #include <utils/qtcassert.h> @@ -164,7 +165,7 @@ bool CommitData::parseFilesFromStatus(const QString &output) { const QStringList lines = output.split('\n'); - foreach (const QString &line, lines) { + for (const QString &line : lines) { if (line.isEmpty()) continue; @@ -187,7 +188,7 @@ bool CommitData::parseFilesFromStatus(const QString &output) QStringList CommitData::filterFiles(const FileStates &state) const { QStringList result; - foreach (const StateFilePair &p, files) { + for (const StateFilePair &p : files) { if (state == (p.first & ~(UnmergedFile | UnmergedUs | UnmergedThem))) result.append(p.second); } diff --git a/src/plugins/git/gerrit/branchcombobox.cpp b/src/plugins/git/gerrit/branchcombobox.cpp index 6863f0e80389d80c6106130aa5d16174111749da..5990160eed8190e894a249baf56d234ab6d83d37 100644 --- a/src/plugins/git/gerrit/branchcombobox.cpp +++ b/src/plugins/git/gerrit/branchcombobox.cpp @@ -48,8 +48,8 @@ void BranchComboBox::init(const QString &repository) m_repository, { "--format=%(refname)", branchPrefix }, &output)) { return; } - QStringList branches = output.trimmed().split('\n'); - foreach (const QString &ref, branches) { + const QStringList branches = output.trimmed().split('\n'); + for (const QString &ref : branches) { const QString branch = ref.mid(branchPrefix.size()); addItem(branch); } diff --git a/src/plugins/git/gerrit/gerritmodel.cpp b/src/plugins/git/gerrit/gerritmodel.cpp index 7de7c43f77d3bf4191336c6564a4ffd4f64df258..a569d7c198632923a893f62fbfc55430e0e90287 100644 --- a/src/plugins/git/gerrit/gerritmodel.cpp +++ b/src/plugins/git/gerrit/gerritmodel.cpp @@ -31,6 +31,8 @@ #include <coreplugin/progressmanager/progressmanager.h> #include <coreplugin/progressmanager/futureprogress.h> #include <vcsbase/vcsoutputwindow.h> + +#include <utils/asconst.h> #include <utils/synchronousprocess.h> #include <QJsonArray> @@ -106,7 +108,7 @@ QString GerritPatchSet::approvalsToHtml() const QString result; QTextStream str(&result); QString lastType; - foreach (const GerritApproval &a, approvals) { + for (const GerritApproval &a : approvals) { if (a.type != lastType) { if (!lastType.isEmpty()) str << "</tr>\n"; @@ -147,7 +149,7 @@ QString GerritPatchSet::approvalsColumn() const return result; TypeReviewMap reviews; // Sort approvals into a map by type character - foreach (const GerritApproval &a, approvals) { + for (const GerritApproval &a : approvals) { if (a.type != "STGN") { // Qt-Project specific: Ignore "STGN" (Staged) const QChar typeChar = a.type.at(0); TypeReviewMapIterator it = reviews.find(typeChar); @@ -169,7 +171,7 @@ QString GerritPatchSet::approvalsColumn() const bool GerritPatchSet::hasApproval(const QString &userName) const { - foreach (const GerritApproval &a, approvals) + for (const GerritApproval &a : approvals) if (a.reviewer == userName) return true; return false; @@ -178,7 +180,7 @@ bool GerritPatchSet::hasApproval(const QString &userName) const int GerritPatchSet::approvalLevel() const { int value = 0; - foreach (const GerritApproval &a, approvals) + for (const GerritApproval &a : approvals) applyApproval(a.approval, &value); return value; } @@ -189,7 +191,7 @@ QString GerritChange::filterString() const QString result = QString::number(number) + blank + title + blank + owner + blank + project + blank + branch + blank + status; - foreach (const GerritApproval &a, currentPatchSet.approvals) { + for (const GerritApproval &a : currentPatchSet.approvals) { result += blank; result += a.reviewer; } @@ -613,7 +615,7 @@ static bool parseOutput(const QSharedPointer<GerritParameters> ¶meters, result.clear(); result.reserve(lines.size()); - foreach (const QByteArray &line, lines) { + for (const QByteArray &line : lines) { if (line.isEmpty()) continue; QJsonParseError error; @@ -791,7 +793,7 @@ void GerritModel::queryFinished(const QByteArray &output) std::stable_sort(changes.begin(), changes.end(), gerritChangeLessThan); numberIndexHash.clear(); - foreach (const GerritChangePtr &c, changes) { + for (const GerritChangePtr &c : Utils::asConst(changes)) { // Avoid duplicate entries for example in the (unlikely) // case people do self-reviews. if (!itemForNumber(c->number)) { diff --git a/src/plugins/git/gerrit/gerritplugin.cpp b/src/plugins/git/gerrit/gerritplugin.cpp index 04c0081230f476b2280e6283b7b9d3cfcddd2dca..cc887ea47db56aba64c0147acc06bc50cb11d1e8 100644 --- a/src/plugins/git/gerrit/gerritplugin.cpp +++ b/src/plugins/git/gerrit/gerritplugin.cpp @@ -337,7 +337,7 @@ void GerritPlugin::push(const QString &topLevel) QStringList options; const QStringList reviewers = m_reviewers.split(',', QString::SkipEmptyParts); - foreach (const QString &reviewer, reviewers) + for (const QString &reviewer : reviewers) options << "r=" + reviewer; if (!options.isEmpty()) @@ -412,8 +412,8 @@ void GerritPlugin::fetch(const QSharedPointer<GerritChange> &change, int mode) // Check if remote from a working dir is the same as remote from patch QMap<QString, QString> remotesList = GitPlugin::client()->synchronousRemotesList(repository); if (!remotesList.isEmpty()) { - QStringList remotes = remotesList.values(); - foreach (QString remote, remotes) { + const QStringList remotes = remotesList.values(); + for (QString remote : remotes) { if (remote.endsWith(".git")) remote.chop(4); if (remote.contains(m_server->host) && remote.endsWith(change->project)) { @@ -423,8 +423,8 @@ void GerritPlugin::fetch(const QSharedPointer<GerritChange> &change, int mode) } if (!verifiedRepository) { - SubmoduleDataMap submodules = GitPlugin::client()->submoduleList(repository); - foreach (const SubmoduleData &submoduleData, submodules) { + const SubmoduleDataMap submodules = GitPlugin::client()->submoduleList(repository); + for (const SubmoduleData &submoduleData : submodules) { QString remote = submoduleData.url; if (remote.endsWith(".git")) remote.chop(4); @@ -501,7 +501,7 @@ QString GerritPlugin::findLocalRepository(QString project, const QString &branch if (!branchRegexp->isValid()) branchRegexp.reset(); // Oops. } - foreach (const QString &repository, gitRepositories) { + for (const QString &repository : gitRepositories) { const QString fileName = Utils::FileName::fromString(repository).fileName(); if ((!branchRegexp.isNull() && branchRegexp->exactMatch(fileName)) || fileName == project) { diff --git a/src/plugins/git/gerrit/gerritpushdialog.cpp b/src/plugins/git/gerrit/gerritpushdialog.cpp index 4841499cf4b3167c3482a1f63a0b4b65969b6d2f..8c1dac42909829a4d8af8e181fce5b33d4ae0f9c 100644 --- a/src/plugins/git/gerrit/gerritpushdialog.cpp +++ b/src/plugins/git/gerrit/gerritpushdialog.cpp @@ -70,14 +70,14 @@ QString GerritPushDialog::determineRemoteBranch(const QString &localBranch) return QString(); } const QString head = "/HEAD"; - QStringList refs = output.split('\n'); + const QStringList refs = output.split('\n'); QString remoteTrackingBranch; if (localBranch != "HEAD") remoteTrackingBranch = GitPlugin::client()->synchronousTrackingBranch(m_workingDir, localBranch); QString remoteBranch; - foreach (const QString &reference, refs) { + for (const QString &reference : refs) { const QString ref = reference.trimmed(); if (ref.contains(head) || ref.isEmpty()) continue; @@ -104,7 +104,7 @@ void GerritPushDialog::initRemoteBranches() } const QStringList refs = output.split("\n"); - foreach (const QString &reference, refs) { + for (const QString &reference : refs) { QStringList entries = reference.split('\t'); if (entries.count() < 2 || entries.first().endsWith(head)) continue; @@ -237,7 +237,7 @@ void GerritPushDialog::setRemoteBranches(bool includeOld) if (!m_remoteBranches.contains(remoteName)) { const QStringList remoteBranches = GitPlugin::client()->synchronousRepositoryBranches(remoteName, m_workingDir); - foreach (const QString &branch, remoteBranches) + for (const QString &branch : remoteBranches) m_remoteBranches.insertMulti(remoteName, qMakePair(branch, QDate())); if (remoteBranches.isEmpty()) { m_ui->targetBranchComboBox->setEditable(true); @@ -250,7 +250,8 @@ void GerritPushDialog::setRemoteBranches(bool includeOld) int i = 0; bool excluded = false; - foreach (const BranchDate &bd, m_remoteBranches.values(remoteName)) { + const QList<BranchDate> remoteBranches = m_remoteBranches.values(remoteName); + for (const BranchDate &bd : remoteBranches) { const bool isSuggested = bd.first == m_suggestedRemoteBranch; if (includeOld || isSuggested || !bd.second.isValid() || bd.second.daysTo(QDate::currentDate()) <= Git::Constants::OBSOLETE_COMMIT_AGE_IN_DAYS) { diff --git a/src/plugins/git/git.pro b/src/plugins/git/git.pro index 953181e371c74c38f88fc438f1b116d821dfcc62..d4814214f5d55476040eba1c66121c607cef6fa6 100644 --- a/src/plugins/git/git.pro +++ b/src/plugins/git/git.pro @@ -1,4 +1,7 @@ include(../../qtcreatorplugin.pri) + +DEFINES += QT_NO_FOREACH + HEADERS += gitplugin.h \ gitconstants.h \ gitclient.h \ diff --git a/src/plugins/git/git.qbs b/src/plugins/git/git.qbs index 964bfe321952ffb918208267be86cececec2fe12..e3fe4158c0c870830e4fb2f2315de843d4fe431e 100644 --- a/src/plugins/git/git.qbs +++ b/src/plugins/git/git.qbs @@ -11,6 +11,8 @@ QtcPlugin { Depends { name: "VcsBase" } Depends { name: "DiffEditor" } + cpp.defines: base.concat(["QT_NO_FOREACH"]) + files: [ "annotationhighlighter.cpp", "annotationhighlighter.h", diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp index 1036c819a964658b2a5b1c9c5d8c61cdf9a47baa..b7b328d8e2eef2c36016a39d063a4623ad79f348 100644 --- a/src/plugins/git/gitclient.cpp +++ b/src/plugins/git/gitclient.cpp @@ -45,6 +45,7 @@ #include <coreplugin/vcsmanager.h> #include <utils/algorithm.h> +#include <utils/asconst.h> #include <utils/checkablemessagebox.h> #include <utils/fileutils.h> #include <utils/hostosinfo.h> @@ -158,7 +159,7 @@ void BaseController::runCommand(const QList<QStringList> &args, QTextCodec *code connect(m_command.data(), &VcsCommand::finished, this, &BaseController::reloadFinished); m_command->addFlags(diffExecutionFlags()); - foreach (const QStringList &arg, args) { + for (const QStringList &arg : args) { QTC_ASSERT(!arg.isEmpty(), continue); m_command->addJob(GitPlugin::client()->vcsBinary(), arg, GitPlugin::client()->vcsTimeoutS()); @@ -1002,7 +1003,8 @@ QStringList GitClient::setupCheckoutArguments(const QString &workingDirectory, QString remoteBranch; const QString head("/HEAD"); - foreach (const QString &singleRef, output.split('\n')) { + const QStringList refs = output.split('\n'); + for (const QString &singleRef : refs) { if (singleRef.startsWith(refSha)) { // branch name might be origin/foo/HEAD if (!singleRef.endsWith(head) || singleRef.count('/') > 1) { @@ -1343,7 +1345,7 @@ QString GitClient::synchronousTopic(const QString &workingDirectory) const const QString dereference("^{}"); QString remoteBranch; - foreach (const QString &ref, references) { + for (const QString &ref : Utils::asConst(references)) { int derefInd = ref.indexOf(dereference); if (ref.startsWith(tagStart)) return ref.mid(tagStart.size(), (derefInd == -1) ? -1 : derefInd - tagStart.size()); @@ -1406,7 +1408,7 @@ void GitClient::synchronousTagsForCommit(const QString &workingDirectory, const QStringList parents; QString errorMessage; synchronousParentRevisions(workingDirectory, revision, &parents, &errorMessage); - foreach (const QString &p, parents) { + for (const QString &p : Utils::asConst(parents)) { const SynchronousProcessResponse resp2 = vcsFullySynchronousExec( workingDirectory, { "describe", "--tags", "--abbrev=0", p }, silentFlags); QString pf = resp2.stdOut(); @@ -1553,7 +1555,7 @@ bool GitClient::stashNameFromMessage(const QString &workingDirectory, QList<Stash> stashes; if (!synchronousStashList(workingDirectory, &stashes, errorMessage)) return false; - foreach (const Stash &s, stashes) { + for (const Stash &s : Utils::asConst(stashes)) { if (s.message == message) { *name = s.name; return true; @@ -1640,9 +1642,9 @@ QMap<QString,QString> GitClient::synchronousRemotesList(const QString &workingDi msgCannotRun(error, errorMessage); return result; } - QStringList remotes = output.split("\n"); - foreach (const QString &remote, remotes) { + const QStringList remotes = output.split("\n"); + for (const QString &remote : remotes) { if (!remote.endsWith(" (push)")) continue; @@ -1682,10 +1684,9 @@ SubmoduleDataMap GitClient::submoduleList(const QString &workingDirectory) const if (cachedSubmoduleData.contains(workingDirectory)) return cachedSubmoduleData.value(workingDirectory); - QStringList allConfigs = readConfigValue(workingDirectory, "-l") - .split('\n'); + const QStringList allConfigs = readConfigValue(workingDirectory, "-l").split('\n'); const QString submoduleLineStart = "submodule."; - foreach (const QString &configLine, allConfigs) { + for (const QString &configLine : allConfigs) { if (!configLine.startsWith(submoduleLineStart)) continue; @@ -1712,7 +1713,8 @@ SubmoduleDataMap GitClient::submoduleList(const QString &workingDirectory) const if (!result.isEmpty()) { QSettings gitmodulesFile(gitmodulesFileName, QSettings::IniFormat); - foreach (const QString &submoduleName, result.keys()) { + const QList<QString> submodules = result.keys(); + for (const QString &submoduleName : submodules) { gitmodulesFile.beginGroup("submodule \"" + submoduleName + '"'); const QString path = gitmodulesFile.value("path").toString(); if (path.isEmpty()) { // invalid submodule entry in config @@ -1782,8 +1784,8 @@ bool GitClient::synchronousCleanList(const QString &workingDirectory, const QStr bool res = cleanList(workingDirectory, modulePath, "-df", files, errorMessage); res &= cleanList(workingDirectory, modulePath, "-dXf", ignoredFiles, errorMessage); - SubmoduleDataMap submodules = submoduleList(workingDirectory + '/' + modulePath); - foreach (const SubmoduleData &submodule, submodules) { + const SubmoduleDataMap submodules = submoduleList(workingDirectory + '/' + modulePath); + for (const SubmoduleData &submodule : submodules) { if (submodule.ignore != "all" && submodule.ignore != "dirty") { const QString submodulePath = modulePath.isEmpty() ? submodule.dir @@ -1872,12 +1874,12 @@ void GitClient::updateSubmodulesIfNeeded(const QString &workingDirectory, bool p if (!m_updatedSubmodules.isEmpty() || submoduleList(workingDirectory).isEmpty()) return; - QStringList submoduleStatus = synchronousSubmoduleStatus(workingDirectory); + const QStringList submoduleStatus = synchronousSubmoduleStatus(workingDirectory); if (submoduleStatus.isEmpty()) return; bool updateNeeded = false; - foreach (const QString &status, submoduleStatus) { + for (const QString &status : submoduleStatus) { if (status.startsWith('+')) { updateNeeded = true; break; @@ -1892,7 +1894,7 @@ void GitClient::updateSubmodulesIfNeeded(const QString &workingDirectory, bool p return; } - foreach (const QString &statusLine, submoduleStatus) { + for (const QString &statusLine : submoduleStatus) { // stash only for lines starting with + // because only they would be updated if (!statusLine.startsWith('+')) @@ -1918,7 +1920,7 @@ void GitClient::updateSubmodulesIfNeeded(const QString &workingDirectory, bool p void GitClient::finishSubmoduleUpdate() { - foreach (const QString &submoduleDir, m_updatedSubmodules) + for (const QString &submoduleDir : Utils::asConst(m_updatedSubmodules)) endStashScope(submoduleDir); m_updatedSubmodules.clear(); } @@ -2112,7 +2114,8 @@ QStringList GitClient::synchronousRepositoryBranches(const QString &repositoryUR // split "82bfad2f51d34e98b18982211c82220b8db049b<tab>refs/heads/master" bool headFound = false; bool branchFound = false; - foreach (const QString &line, resp.stdOut().split('\n')) { + const QStringList lines = resp.stdOut().split('\n'); + for (const QString &line : lines) { if (line.endsWith("\tHEAD")) { QTC_CHECK(headSha.isNull()); headSha = line.left(line.indexOf('\t')); @@ -2988,7 +2991,8 @@ bool GitClient::synchronousStashList(const QString &workingDirectory, QList<Stas return false; } Stash stash; - foreach (const QString &line, splitLines(resp.stdOut())) { + const QStringList lines = splitLines(resp.stdOut()); + for (const QString &line : lines) { if (stash.parseStashLine(line)) stashes->push_back(stash); } diff --git a/src/plugins/git/gitgrep.cpp b/src/plugins/git/gitgrep.cpp index 8bb26b244eacc17854efcb38c4f546fc2ec5a552..529921fb3f1b29c4e63a90574f20a48b08019ea9 100644 --- a/src/plugins/git/gitgrep.cpp +++ b/src/plugins/git/gitgrep.cpp @@ -35,6 +35,7 @@ #include <vcsbase/vcscommand.h> #include <vcsbase/vcsbaseconstants.h> +#include <utils/asconst.h> #include <utils/fancylineedit.h> #include <utils/filesearch.h> #include <utils/fileutils.h> @@ -119,7 +120,7 @@ public: QRegularExpressionMatch regexpMatch = regexp.match(line); single.regexpCapturedTexts = regexpMatch.capturedTexts(); } - foreach (auto match, matches) { + for (auto match : Utils::asConst(matches)) { single.matchStart = match.first; single.matchLength = match.second; resultList->append(single); diff --git a/src/plugins/git/githighlighters.cpp b/src/plugins/git/githighlighters.cpp index 4cbb6351378d352d0f9071e9d356369478854993..f6cea509ec9d2560f193406d2264d2fa21280c97 100644 --- a/src/plugins/git/githighlighters.cpp +++ b/src/plugins/git/githighlighters.cpp @@ -25,6 +25,7 @@ #include <texteditor/texteditorconstants.h> +#include <utils/asconst.h> #include <utils/qtcassert.h> #include "githighlighters.h" @@ -130,7 +131,7 @@ void GitRebaseHighlighter::highlightBlock(const QString &text) return; } - foreach (const RebaseAction &action, m_actions) { + for (const RebaseAction &action : Utils::asConst(m_actions)) { if (action.exp.indexIn(text) != -1) { const int len = action.exp.matchedLength(); setFormat(0, len, formatForCategory(action.formatCategory)); diff --git a/src/plugins/git/gitplugin.cpp b/src/plugins/git/gitplugin.cpp index 5d4e167f86fd432575ae689974fbd71f0fc57839..4d6631cf83890eb1fe0cd93279bc08270c1b1585 100644 --- a/src/plugins/git/gitplugin.cpp +++ b/src/plugins/git/gitplugin.cpp @@ -58,6 +58,7 @@ #include <coreplugin/vcsmanager.h> #include <coreplugin/messagebox.h> +#include <utils/asconst.h> #include <utils/mimetypes/mimedatabase.h> #include <utils/qtcassert.h> #include <utils/parameteraction.h> @@ -1336,15 +1337,15 @@ void GitPlugin::updateActions(VcsBasePlugin::ActionState as) // Note: This menu is visible if there is no repository. Only // 'Create Repository'/'Show' actions should be available. const QString fileName = state.currentFileName(); - foreach (ParameterAction *fileAction, m_fileActions) + for (ParameterAction *fileAction : Utils::asConst(m_fileActions)) fileAction->setParameter(fileName); // If the current file looks like a patch, offer to apply m_applyCurrentFilePatchAction->setParameter(state.currentPatchFileDisplayName()); const QString projectName = state.currentProjectName(); - foreach (ParameterAction *projectAction, m_projectActions) + for (ParameterAction *projectAction : Utils::asConst(m_projectActions)) projectAction->setParameter(projectName); - foreach (QAction *repositoryAction, m_repositoryActions) + for (QAction *repositoryAction : Utils::asConst(m_repositoryActions)) repositoryAction->setEnabled(repositoryEnabled); m_submoduleUpdateAction->setVisible(repositoryEnabled diff --git a/src/plugins/git/gitsubmiteditor.cpp b/src/plugins/git/gitsubmiteditor.cpp index 5ac2fbdd8374050798afcd982d64e4f7313c7704..4263219e8e732b9b75a0e77229893fbe158d0900 100644 --- a/src/plugins/git/gitsubmiteditor.cpp +++ b/src/plugins/git/gitsubmiteditor.cpp @@ -182,7 +182,7 @@ void GitSubmitEditor::slotDiffSelected(const QList<int> &rows) QStringList unmergedFiles; QStringList unstagedFiles; QStringList stagedFiles; - foreach (int row, rows) { + for (int row : rows) { const QString fileName = m_model->file(row); const FileStates state = static_cast<FileStates>(m_model->extraData(row).toInt()); if (state & UnmergedFile) { diff --git a/src/plugins/git/logchangedialog.cpp b/src/plugins/git/logchangedialog.cpp index e529ca22468f568816debdb9f8d2a6ae26a33e4f..c6dd0a4a16840b192e251863e4f771e9ab9e31e9 100644 --- a/src/plugins/git/logchangedialog.cpp +++ b/src/plugins/git/logchangedialog.cpp @@ -161,7 +161,8 @@ bool LogChangeWidget::populateLog(const QString &repository, const QString &comm QString output; if (!GitPlugin::client()->synchronousLog(repository, arguments, &output, 0, VcsCommand::NoOutput)) return false; - foreach (const QString &line, output.split('\n')) { + const QStringList lines = output.split('\n'); + for (const QString &line : lines) { const int colonPos = line.indexOf(':'); if (colonPos != -1) { QList<QStandardItem *> row; diff --git a/src/plugins/git/remotemodel.cpp b/src/plugins/git/remotemodel.cpp index b1bcb3559d3a3a5926837bc8275f05baa5d577ab..f5451589ba0c196b826bdf6c1896f92b61b3f7ef 100644 --- a/src/plugins/git/remotemodel.cpp +++ b/src/plugins/git/remotemodel.cpp @@ -186,7 +186,8 @@ bool RemoteModel::refresh(const QString &workingDirectory, QString *errorMessage beginResetModel(); m_remotes.clear(); - foreach (const QString &remoteName, remotesList.keys()) { + const QList<QString> remotes = remotesList.keys(); + for (const QString &remoteName : remotes) { Remote newRemote; newRemote.name = remoteName; newRemote.url = remotesList.value(remoteName); diff --git a/src/plugins/git/stashdialog.cpp b/src/plugins/git/stashdialog.cpp index 346d75a886ad946f9149d8b6bbf799e5dd5366b4..ffa9ac662477674af2d67ee0f619e97380a709b9 100644 --- a/src/plugins/git/stashdialog.cpp +++ b/src/plugins/git/stashdialog.cpp @@ -85,7 +85,7 @@ void StashModel::setStashes(const QList<Stash> &stashes) m_stashes = stashes; if (const int rows = rowCount()) removeRows(0, rows); - foreach (const Stash &s, stashes) + for (const Stash &s : stashes) appendRow(stashModelRowItems(s)); } @@ -354,7 +354,8 @@ int StashDialog::currentRow() const QList<int> StashDialog::selectedRows() const { QList<int> rc; - foreach (const QModelIndex &proxyIndex, ui->stashView->selectionModel()->selectedRows()) { + const QModelIndexList rows = ui->stashView->selectionModel()->selectedRows(); + for (const QModelIndex &proxyIndex : rows) { const QModelIndex index = m_proxyModel->mapToSource(proxyIndex); if (index.isValid()) rc.push_back(index.row());