diff options
author | Jarek Kobus <jaroslaw.kobus@qt.io> | 2020-09-15 12:07:59 +0200 |
---|---|---|
committer | Jarek Kobus <jaroslaw.kobus@qt.io> | 2020-09-15 15:56:04 +0200 |
commit | 6b656bf454d43ccdcfefa74c6ae1d16ac6d72702 (patch) | |
tree | b86c6534e1a272823c721a0f2757f02d29742dac /src/linguist | |
parent | 19d03aa01fbb513294f51479946406bb03b7486b (diff) |
Linguist: Replace foreach with range-based for
Change-Id: I8b1aed7bc5f4f1d14ff9db4cf7c09fbc4267246d
Reviewed-by: hjk <hjk@qt.io>
Diffstat (limited to 'src/linguist')
28 files changed, 177 insertions, 161 deletions
diff --git a/src/linguist/lconvert/main.cpp b/src/linguist/lconvert/main.cpp index 2dc07db51..8996f4247 100644 --- a/src/linguist/lconvert/main.cpp +++ b/src/linguist/lconvert/main.cpp @@ -49,7 +49,7 @@ static int usage(const QStringList &args) QString loaders; QString line(QLatin1String(" %1 - %2\n")); - foreach (Translator::FileFormat format, Translator::registeredFileFormats()) + for (const Translator::FileFormat &format : qAsConst(Translator::registeredFileFormats())) loaders += line.arg(format.extension, -5).arg(format.description()); std::cout << qPrintable(LC::tr("\nUsage:\n" diff --git a/src/linguist/linguist/batchtranslationdialog.cpp b/src/linguist/linguist/batchtranslationdialog.cpp index 69208db7d..2543ed736 100644 --- a/src/linguist/linguist/batchtranslationdialog.cpp +++ b/src/linguist/linguist/batchtranslationdialog.cpp @@ -121,7 +121,8 @@ void BatchTranslationDialog::startTranslation() QVariant checkState = m_model.data(idx, Qt::CheckStateRole); if (checkState == Qt::Checked) { PhraseBook *pb = m_phrasebooks[m_model.data(idx, Qt::UserRole).toInt()]; - foreach (const Phrase *ph, pb->phrases()) { + const auto phrases = pb->phrases(); + for (const Phrase *ph : phrases) { if (ph->source() == m->text()) { m_dataModel->setTranslation(it, ph->target()); m_dataModel->setFinished(it, m_ui.ckMarkFinished->isChecked()); diff --git a/src/linguist/linguist/formpreviewview.cpp b/src/linguist/linguist/formpreviewview.cpp index 7c5b24f6c..2446e0097 100644 --- a/src/linguist/linguist/formpreviewview.cpp +++ b/src/linguist/linguist/formpreviewview.cpp @@ -131,7 +131,8 @@ static void buildTargets(QObject *o, TargetsHash *targets) { TranslatableEntry target; - foreach (const QByteArray &prop, o->dynamicPropertyNames()) { + const auto propNames = o->dynamicPropertyNames(); + for (const QByteArray &prop : propNames) { if (prop.startsWith(PROP_GENERIC_PREFIX)) { const QByteArray propName = prop.mid(sizeof(PROP_GENERIC_PREFIX) - 1); INSERT_TARGET(o->property(prop), @@ -200,14 +201,14 @@ static void buildTargets(QObject *o, TargetsHash *targets) registerTreeItem(treew->topLevelItem(i), targets); #endif } - foreach (QObject *co, o->children()) + for (QObject *co : o->children()) buildTargets(co, targets); } static void destroyTargets(TargetsHash *targets) { - for (TargetsHash::Iterator it = targets->begin(), end = targets->end(); it != end; ++it) - foreach (const TranslatableEntry &target, *it) + for (TargetsHash::ConstIterator it = targets->cbegin(), end = targets->cend(); it != end; ++it) + for (const TranslatableEntry &target : *it) if (target.type == TranslatableProperty) delete target.prop.name; targets->clear(); @@ -279,7 +280,7 @@ static void retranslateTargets( if (text.isEmpty() && !tsv.value().isEmpty()) text = QLatin1Char('#') + sourceText; - foreach (const TranslatableEntry &target, targets) + for (const TranslatableEntry &target : targets) retranslateTarget(target, text); } @@ -376,7 +377,7 @@ static void highlightAction(QAction *a, bool on) a->setProperty(FONT_BACKUP_PROP, QVariant()); } } - foreach (QWidget *w, a->associatedWidgets()) + for (QWidget *w : a->associatedWidgets()) highlightWidget(w, on); } @@ -386,7 +387,7 @@ static void highlightWidget(QWidget *w, bool on) if (on) { if (!bak.isValid()) { QPalette pal = qApp->palette(); - foreach (QObject *co, w->children()) + for (QObject *co : w->children()) if (QWidget *cw = qobject_cast<QWidget *>(co)) cw->setPalette(cw->palette().resolve(pal)); w->setProperty(PALETTE_BACKUP_PROP, QVariant::fromValue(w->palette().resolve(pal))); @@ -478,7 +479,7 @@ static void highlightTarget(const TranslatableEntry &target, bool on) static void highlightTargets(const QList<TranslatableEntry> &targets, bool on) { - foreach (const TranslatableEntry &target, targets) + for (const TranslatableEntry &target : targets) highlightTarget(target, on); } diff --git a/src/linguist/linguist/mainwindow.cpp b/src/linguist/linguist/mainwindow.cpp index 6a49fae72..b31c27440 100644 --- a/src/linguist/linguist/mainwindow.cpp +++ b/src/linguist/linguist/mainwindow.cpp @@ -595,7 +595,7 @@ bool MainWindow::openFiles(const QStringList &names, bool globalReadWrite) QList<OpenedFile> opened; bool closeOld = false; - foreach (QString name, names) { + for (QString name : names) { if (!waitCursor) { QApplication::setOverrideCursor(Qt::WaitCursor); waitCursor = true; @@ -655,7 +655,7 @@ bool MainWindow::openFiles(const QStringList &names, bool globalReadWrite) { case QMessageBox::Cancel: delete dm; - foreach (const OpenedFile &op, opened) + for (const OpenedFile &op : qAsConst(opened)) delete op.dataModel; return false; case QMessageBox::Yes: @@ -675,13 +675,13 @@ bool MainWindow::openFiles(const QStringList &names, bool globalReadWrite) waitCursor = false; } if (!closeAll()) { - foreach (const OpenedFile &op, opened) + for (const OpenedFile &op : qAsConst(opened)) delete op.dataModel; return false; } } - foreach (const OpenedFile &op, opened) { + for (const OpenedFile &op : qAsConst(opened)) { if (op.langGuessed) { if (waitCursor) { QApplication::restoreOverrideCursor(); @@ -699,7 +699,7 @@ bool MainWindow::openFiles(const QStringList &names, bool globalReadWrite) m_contextView->setUpdatesEnabled(false); m_messageView->setUpdatesEnabled(false); int totalCount = 0; - foreach (const OpenedFile &op, opened) { + for (const OpenedFile &op : qAsConst(opened)) { m_phraseDict.append(QHash<QString, QList<Phrase *> >()); m_dataModel->append(op.dataModel, op.readWrite); if (op.readWrite) @@ -763,7 +763,7 @@ static QString fileFilters(bool allFirst) static const QString pattern(QLatin1String("%1 (*.%2);;")); QStringList allExtensions; QString filter; - foreach (const Translator::FileFormat &format, Translator::registeredFileFormats()) { + for (const Translator::FileFormat &format : qAsConst(Translator::registeredFileFormats())) { if (format.fileType == Translator::FileFormat::TranslationSource && format.priority >= 0) { filter.append(pattern.arg(format.description(), format.extension)); allExtensions.append(QLatin1String("*.") + format.extension); @@ -1020,7 +1020,8 @@ void MainWindow::findAgain() if (searchItem(DataModel::Comments, m->extraComment())) break; } - foreach (const QString &trans, m->translations()) + const auto translations = m->translations(); + for (const QString &trans : translations) if (searchItem(DataModel::Translations, trans)) goto didfind; if (searchItem(DataModel::Comments, m->translatorComment())) @@ -1183,7 +1184,7 @@ void MainWindow::newPhraseBook() bool MainWindow::isPhraseBookOpen(const QString &name) { - foreach(const PhraseBook *pb, m_phraseBooks) { + for (const PhraseBook *pb : qAsConst(m_phraseBooks)) { if (pb->fileName() == name) return true; } @@ -1252,7 +1253,8 @@ void MainWindow::printPhraseBook(QAction *action) statusBar()->showMessage(tr("Printing...")); PrintOut pout(printer()); pout.setRule(PrintOut::ThinRule); - foreach (const Phrase *p, phraseBook->phrases()) { + const auto phrases = phraseBook->phrases(); + for (const Phrase *p : phrases) { pout.setGuide(p->source()); pout.addBox(29, p->source()); pout.addBox(4); @@ -1279,7 +1281,7 @@ void MainWindow::addToPhraseBook() { QStringList phraseBookList; QHash<QString, PhraseBook *> phraseBookHash; - foreach (PhraseBook *pb, m_phraseBooks) { + for (PhraseBook *pb : qAsConst(m_phraseBooks)) { if (pb->language() != QLocale::C && m_dataModel->language(m_currentIndex.model()) != QLocale::C) { if (pb->language() != m_dataModel->language(m_currentIndex.model())) continue; @@ -2378,7 +2380,7 @@ bool MainWindow::maybeSavePhraseBook(PhraseBook *pb) bool MainWindow::maybeSavePhraseBooks() { - foreach(PhraseBook *phraseBook, m_phraseBooks) + for (PhraseBook *phraseBook : qAsConst(m_phraseBooks)) if (!maybeSavePhraseBook(phraseBook)) return false; return true; @@ -2419,7 +2421,7 @@ void MainWindow::updatePhraseDictInternal(int model) QHash<QString, QList<Phrase *> > &pd = m_phraseDict[model]; pd.clear(); - foreach (PhraseBook *pb, m_phraseBooks) { + for (PhraseBook *pb : qAsConst(m_phraseBooks)) { bool before; if (pb->language() != QLocale::C && m_dataModel->language(model) != QLocale::C) { if (pb->language() != m_dataModel->language(model)) @@ -2428,7 +2430,8 @@ void MainWindow::updatePhraseDictInternal(int model) } else { before = false; } - foreach (Phrase *p, pb->phrases()) { + const auto phrases = pb->phrases(); + for (Phrase *p : phrases) { QString f = friendlyString(p->source()); if (f.length() > 0) { f = f.split(QLatin1Char(' ')).first(); @@ -2566,10 +2569,11 @@ void MainWindow::updateDanger(const MultiDataIndex &index, bool verbose) QStringList lookupWords = fsource.split(QLatin1Char(' ')); bool phraseFound; - foreach (const QString &s, lookupWords) { + for (const QString &s : qAsConst(lookupWords)) { if (m_phraseDict[mi].contains(s)) { phraseFound = true; - foreach (const Phrase *p, m_phraseDict[mi].value(s)) { + const auto phrases = m_phraseDict[mi].value(s); + for (const Phrase *p : phrases) { if (fsource == friendlyString(p->source())) { if (ftranslation.indexOf(friendlyString(p->target())) >= 0) { phraseFound = true; @@ -2625,7 +2629,7 @@ void MainWindow::updateDanger(const MultiDataIndex &index, bool verbose) } } - foreach (int i, placeMarkerIndexes) { + for (int i : qAsConst(placeMarkerIndexes)) { if (i != 0) { if (verbose) m_errorsView->addError(mi, ErrorsView::PlaceMarkersDiffer); @@ -2732,7 +2736,7 @@ void MainWindow::writeConfig() void MainWindow::setupRecentFilesMenu() { m_ui.menuRecentlyOpenedFiles->clear(); - foreach (const QStringList &strList, recentFiles().filesLists()) + for (const QStringList &strList : recentFiles().filesLists()) if (strList.size() == 1) { const QString &str = strList.first(); m_ui.menuRecentlyOpenedFiles->addAction( @@ -2742,7 +2746,7 @@ void MainWindow::setupRecentFilesMenu() MultiDataModel::condenseFileNames( MultiDataModel::prettifyFileNames(strList))); menu->addAction(tr("All"))->setData(strList); - foreach (const QString &str, strList) + for (const QString &str : strList) menu->addAction(DataModel::prettifyFileName(str))->setData(str); } } @@ -2815,7 +2819,7 @@ bool MainWindow::eventFilter(QObject *object, QEvent *event) if (!e->mimeData()->hasFormat(QLatin1String("text/uri-list"))) return false; QStringList urls; - foreach (QUrl url, e->mimeData()->urls()) + for (const QUrl &url : e->mimeData()->urls()) if (!url.toLocalFile().isEmpty()) urls << url.toLocalFile(); if (!urls.isEmpty()) diff --git a/src/linguist/linguist/messageeditor.cpp b/src/linguist/linguist/messageeditor.cpp index d1bc155c1..1a126da7a 100644 --- a/src/linguist/linguist/messageeditor.cpp +++ b/src/linguist/linguist/messageeditor.cpp @@ -211,7 +211,7 @@ void MessageEditor::messageModelAppended() void MessageEditor::allModelsDeleted() { - foreach (const MessageEditorData &med, m_editors) + for (const MessageEditorData &med : qAsConst(m_editors)) med.container->deleteLater(); m_editors.clear(); m_currentModel = -1; @@ -312,9 +312,9 @@ void MessageEditor::fixTabOrder() void MessageEditor::reallyFixTabOrder() { QWidget *prev = this; - foreach (const MessageEditorData &med, m_editors) { - foreach (FormMultiWidget *fmw, med.transTexts) - foreach (QTextEdit *te, fmw->getEditors()) { + for (const MessageEditorData &med : qAsConst(m_editors)) { + for (FormMultiWidget *fmw : med.transTexts) + for (QTextEdit *te : fmw->getEditors()) { setTabOrder(prev, te); prev = te; } @@ -397,7 +397,7 @@ void MessageEditor::activeModelAndNumerus(int *model, int *numerus) const { for (int j = 0; j < m_editors.count(); ++j) { for (int i = 0; i < m_editors[j].transTexts.count(); ++i) - foreach (QTextEdit *te, m_editors[j].transTexts[i]->getEditors()) + for (QTextEdit *te : m_editors[j].transTexts[i]->getEditors()) if (m_focusWidget == te) { *model = j; *numerus = i; @@ -419,7 +419,7 @@ QTextEdit *MessageEditor::activeTranslation() const return 0; const QList<FormatTextEdit *> &editors = m_editors[m_currentModel].transTexts[m_currentNumerus]->getEditors(); - foreach (QTextEdit *te, editors) + for (QTextEdit *te : editors) if (te->hasFocus()) return te; return editors.first(); @@ -485,7 +485,7 @@ MessageEditorData *MessageEditor::modelForWidget(const QObject *o) { for (int j = 0; j < m_editors.count(); ++j) { for (int i = 0; i < m_editors[j].transTexts.count(); ++i) - foreach (QTextEdit *te, m_editors[j].transTexts[i]->getEditors()) + for (QTextEdit *te : m_editors[j].transTexts[i]->getEditors()) if (te == o) return &m_editors[j]; if (m_editors[j].transCommentText->getEditor() == o) @@ -568,7 +568,7 @@ void MessageEditor::showNothing() m_commentText->clearTranslation(); for (int j = 0; j < m_editors.count(); ++j) { setEditingEnabled(j, false); - foreach (FormMultiWidget *widget, m_editors[j].transTexts) + for (FormMultiWidget *widget : qAsConst(m_editors[j].transTexts)) widget->clearTranslation(); m_editors[j].transCommentText->clearTranslation(); } @@ -683,7 +683,7 @@ void MessageEditor::setTranslation(int latestModel, const QString &translation) void MessageEditor::setEditingEnabled(int model, bool enabled) { MessageEditorData &ed = m_editors[model]; - foreach (FormMultiWidget *widget, ed.transTexts) + for (FormMultiWidget *widget : qAsConst(ed.transTexts)) widget->setEditingEnabled(enabled); ed.transCommentText->setEditingEnabled(enabled); @@ -695,8 +695,8 @@ void MessageEditor::setEditingEnabled(int model, bool enabled) void MessageEditor::setLengthVariants(bool on) { m_lengthVariants = on; - foreach (const MessageEditorData &ed, m_editors) - foreach (FormMultiWidget *widget, ed.transTexts) + for (const MessageEditorData &ed : qAsConst(m_editors)) + for (FormMultiWidget *widget : ed.transTexts) widget->setMultiEnabled(on); } @@ -882,10 +882,10 @@ void MessageEditor::setVisualizeWhitespace(bool value) m_pluralSource->getEditor()->setVisualizeWhitespace(value); m_commentText->getEditor()->setVisualizeWhitespace(value); - foreach (const MessageEditorData &med, m_editors) { + for (const MessageEditorData &med : qAsConst(m_editors)) { med.transCommentText->getEditor()->setVisualizeWhitespace(value); - foreach (FormMultiWidget *widget, med.transTexts) - foreach (FormatTextEdit *te, widget->getEditors()) + for (FormMultiWidget *widget : med.transTexts) + for (FormatTextEdit *te : widget->getEditors()) te->setVisualizeWhitespace(value); } } @@ -912,9 +912,9 @@ void MessageEditor::applyFontSize() m_pluralSource->getEditor()->setFont(font); m_commentText->getEditor()->setFont(font); - foreach (MessageEditorData med, m_editors) { - for (int i = 0; i < med.transTexts.count(); ++i) - foreach (QTextEdit *te, med.transTexts[i]->getEditors()) + for (const MessageEditorData &med : qAsConst(m_editors)) { + for (FormMultiWidget *fmw : med.transTexts) + for (QTextEdit *te : fmw->getEditors()) te->setFont(font); med.transCommentText->getEditor()->setFont(font); } diff --git a/src/linguist/linguist/messagemodel.cpp b/src/linguist/linguist/messagemodel.cpp index c241a5be3..faa4b2a0a 100644 --- a/src/linguist/linguist/messagemodel.cpp +++ b/src/linguist/linguist/messagemodel.cpp @@ -203,18 +203,18 @@ bool DataModel::load(const QString &fileName, bool *langGuessed, QWidget *parent return false; } - Translator::Duplicates dupes = tor.resolveDuplicates(); + const Translator::Duplicates dupes = tor.resolveDuplicates(); if (!dupes.byId.isEmpty() || !dupes.byContents.isEmpty()) { QString err = tr("<qt>Duplicate messages found in '%1':").arg(fileName.toHtmlEscaped()); int numdups = 0; - foreach (int i, dupes.byId) { + for (int i : dupes.byId) { if (++numdups >= 5) { err += tr("<p>[more duplicates omitted]"); goto doWarn; } err += tr("<p>* ID: %1").arg(tor.message(i).id().toHtmlEscaped()); } - foreach (int j, dupes.byContents) { + for (int j : dupes.byContents) { const TranslatorMessage &msg = tor.message(j); if (++numdups >= 5) { err += tr("<p>[more duplicates omitted]"); @@ -241,7 +241,7 @@ bool DataModel::load(const QString &fileName, bool *langGuessed, QWidget *parent m_srcChars = 0; m_srcCharsSpc = 0; - foreach (const TranslatorMessage &msg, tor.messages()) { + for (const TranslatorMessage &msg : tor.messages()) { if (!contexts.contains(msg.context())) { contexts.insert(msg.context(), m_contextList.size()); m_contextList.append(ContextItem(msg.context())); @@ -609,7 +609,7 @@ void MultiContextItem::appendMessageItems(const QList<MessageItem *> &m) for (int i = 0; i < m_messageLists.count() - 1; ++i) m_messageLists[i] += nullItems; m_messageLists.last() += m; - foreach (MessageItem *mi, m) + for (MessageItem *mi : m) m_multiMessageList.append(MultiMessageItem(mi)); } @@ -860,7 +860,7 @@ QStringList MultiDataModel::prettifyFileNames(const QStringList &names) { QStringList out; - foreach (const QString &name, names) + for (const QString &name : names) out << DataModel::prettifyFileName(name); return out; } @@ -925,7 +925,7 @@ QString MultiDataModel::condenseFileNames(const QStringList &names) QStringList MultiDataModel::srcFileNames(bool pretty) const { QStringList names; - foreach (DataModel *dm, m_dataModels) + for (DataModel *dm : m_dataModels) names << (dm->isWritable() ? QString() : QString::fromLatin1("=")) + dm->srcFileName(pretty); return names; } @@ -937,7 +937,7 @@ QString MultiDataModel::condensedSrcFileNames(bool pretty) const bool MultiDataModel::isModified() const { - foreach (const DataModel *mdl, m_dataModels) + for (const DataModel *mdl : m_dataModels) if (mdl->isModified()) return true; return false; diff --git a/src/linguist/linguist/phrase.cpp b/src/linguist/linguist/phrase.cpp index 2571c56ea..1d4688d4d 100644 --- a/src/linguist/linguist/phrase.cpp +++ b/src/linguist/linguist/phrase.cpp @@ -276,7 +276,7 @@ bool PhraseBook::save(const QString &fileName) if (language() != QLocale::C) t << " language=\"" << Translator::makeLanguageCode(language(), country()) << '"'; t << ">\n"; - foreach (Phrase *p, m_phrases) { + for (Phrase *p : qAsConst(m_phrases)) { t << "<phrase>\n"; t << " <source>" << protect( p->source() ) << "</source>\n"; t << " <target>" << protect( p->target() ) << "</target>\n"; diff --git a/src/linguist/linguist/phrasebookbox.cpp b/src/linguist/linguist/phrasebookbox.cpp index dc6215f21..60f8f25c4 100644 --- a/src/linguist/linguist/phrasebookbox.cpp +++ b/src/linguist/linguist/phrasebookbox.cpp @@ -91,7 +91,8 @@ PhraseBookBox::PhraseBookBox(PhraseBook *phraseBook, QWidget *parent) targetLed->installEventFilter(this); definitionLed->installEventFilter(this); - foreach (Phrase *p, phraseBook->phrases()) + const auto phrases = phraseBook->phrases(); + for (Phrase *p : phrases) phrMdl->addPhrase(p); phraseList->sortByColumn(0, Qt::AscendingOrder); diff --git a/src/linguist/linguist/phraseview.cpp b/src/linguist/linguist/phraseview.cpp index 03fbc7390..9c7a4f966 100644 --- a/src/linguist/linguist/phraseview.cpp +++ b/src/linguist/linguist/phraseview.cpp @@ -139,7 +139,8 @@ void PhraseView::mouseDoubleClickEvent(QMouseEvent *event) void PhraseView::guessShortcut(int key) { - foreach (const Phrase *phrase, m_phraseModel->phraseList()) + const auto phrases = m_phraseModel->phraseList(); + for (const Phrase *phrase : phrases) if (phrase->shortcut() == key) { emit phraseSelected(m_modelIndex, phrase->target()); return; @@ -249,14 +250,15 @@ void PhraseView::setSourceText(int model, const QString &sourceText) if (model < 0) return; - foreach (Phrase *p, getPhrases(model, sourceText)) + const auto phrases = getPhrases(model, sourceText); + for (Phrase *p : phrases) m_phraseModel->addPhrase(p); if (!sourceText.isEmpty() && m_doGuesses) { - CandidateList cl = similarTextHeuristicCandidates(m_dataModel, model, + const CandidateList cl = similarTextHeuristicCandidates(m_dataModel, model, sourceText.toLatin1(), m_maxCandidates); int n = 0; - foreach (const Candidate &candidate, cl) { + for (const Candidate &candidate : cl) { QString def; if (n < 9) def = tr("Guess from '%1' (%2)") @@ -275,12 +277,13 @@ void PhraseView::setSourceText(int model, const QString &sourceText) QList<Phrase *> PhraseView::getPhrases(int model, const QString &source) { QList<Phrase *> phrases; - QString f = MainWindow::friendlyString(source); - QStringList lookupWords = f.split(QLatin1Char(' ')); + const QString f = MainWindow::friendlyString(source); + const QStringList lookupWords = f.split(QLatin1Char(' ')); - foreach (const QString &s, lookupWords) { + for (const QString &s : lookupWords) { if (m_phraseDict->at(model).contains(s)) { - foreach (Phrase *p, m_phraseDict->at(model).value(s)) { + const auto phraseList = m_phraseDict->at(model).value(s); + for (Phrase *p : phraseList) { if (f.contains(MainWindow::friendlyString(p->source()))) phrases.append(p); } diff --git a/src/linguist/linguist/recentfiles.cpp b/src/linguist/linguist/recentfiles.cpp index 07f61dd18..703fdf2d7 100644 --- a/src/linguist/linguist/recentfiles.cpp +++ b/src/linguist/linguist/recentfiles.cpp @@ -115,18 +115,21 @@ void RecentFiles::readConfig() { m_strLists.clear(); QVariant val = QSettings().value(configKey()); - if (val.type() == QVariant::StringList) // Backwards compat to Qt < 4.5 - foreach (const QString &s, val.toStringList()) + if (val.type() == QVariant::StringList) { // Backwards compat to Qt < 4.5 + const auto stringList = val.toStringList(); + for (const QString &s : stringList) m_strLists << QStringList(QFileInfo(s).canonicalFilePath()); - else - foreach (const QVariant &v, val.toList()) + } else { + const auto list = val.toList(); + for (const QVariant &v : list) m_strLists << v.toStringList(); + } } void RecentFiles::writeConfig() const { QList<QVariant> vals; - foreach (const QStringList &sl, m_strLists) + for (const QStringList &sl : m_strLists) vals << sl; QSettings().setValue(configKey(), vals); } diff --git a/src/linguist/linguist/translationsettingsdialog.cpp b/src/linguist/linguist/translationsettingsdialog.cpp index 5c567e59a..919258c6e 100644 --- a/src/linguist/linguist/translationsettingsdialog.cpp +++ b/src/linguist/linguist/translationsettingsdialog.cpp @@ -79,7 +79,7 @@ static void fillCountryCombo(const QVariant &lng, QComboBox *combo) combo->clear(); QLocale::Language lang = QLocale::Language(lng.toInt()); if (lang != QLocale::C) { - foreach (QLocale::Country cntr, QLocale::countriesForLanguage(lang)) { + for (QLocale::Country cntr : QLocale::countriesForLanguage(lang)) { QString country = QLocale::countryToString(cntr); auto loc = QLocale(lang, cntr); if (loc.language() != QLocale::English) { diff --git a/src/linguist/lprodump/main.cpp b/src/linguist/lprodump/main.cpp index a7fb56deb..85eedd8e4 100644 --- a/src/linguist/lprodump/main.cpp +++ b/src/linguist/lprodump/main.cpp @@ -195,16 +195,16 @@ static QStringList getSources(const ProFileEvaluator &visitor, const QString &pr sourceFiles += getSources("FORMS", "VPATH_FORMS", baseVPaths, projectDir, visitor); - QStringList resourceFiles = getSources("RESOURCES", "VPATH_RESOURCES", baseVPaths, projectDir, visitor); - foreach (const QString &resource, resourceFiles) + const QStringList resourceFiles = getSources("RESOURCES", "VPATH_RESOURCES", baseVPaths, projectDir, visitor); + for (const QString &resource : resourceFiles) sourceFiles += getResources(resource, vfs); QStringList installs = visitor.values(QLatin1String("INSTALLS")) + visitor.values(QLatin1String("DEPLOYMENT")); installs.removeDuplicates(); QDir baseDir(projectDir); - foreach (const QString inst, installs) { - foreach (const QString &file, visitor.values(inst + QLatin1String(".files"))) { + for (const QString &inst : qAsConst(installs)) { + for (const QString &file : visitor.values(inst + QLatin1String(".files"))) { QFileInfo info(file); if (!info.isAbsolute()) info.setFile(baseDir.absoluteFilePath(file)); @@ -233,7 +233,7 @@ static QStringList getSources(const ProFileEvaluator &visitor, const QString &pr sourceFiles.removeDuplicates(); sourceFiles.sort(); - foreach (const QString &ex, excludes) { + for (const QString &ex : excludes) { // TODO: take advantage of the file list being sorted QRegularExpression rx(QRegularExpression::wildcardToRegularExpression(ex)); for (QStringList::Iterator it = sourceFiles.begin(); it != sourceFiles.end(); ) { @@ -260,7 +260,7 @@ QStringList getExcludes(const ProFileEvaluator &visitor, const QString &projectD static void excludeProjects(const ProFileEvaluator &visitor, QStringList *subProjects) { - foreach (const QString &ex, visitor.values(QLatin1String("TR_EXCLUDE"))) { + for (const QString &ex : visitor.values(QLatin1String("TR_EXCLUDE"))) { QRegularExpression rx(QRegularExpression::wildcardToRegularExpression(ex)); for (QStringList::Iterator it = subProjects->begin(); it != subProjects->end(); ) { if (rx.match(*it).hasMatch()) @@ -289,7 +289,7 @@ static QJsonObject processProject(const QString &proFile, ProFileGlobals *option excludeProjects(visitor, &subProjects); QStringList subProFiles; QDir proDir(proPath); - foreach (const QString &subdir, subProjects) { + for (const QString &subdir : qAsConst(subProjects)) { QString realdir = visitor.value(subdir + QLatin1String(".subdir")); if (realdir.isEmpty()) realdir = visitor.value(subdir + QLatin1String(".file")); @@ -325,7 +325,7 @@ static QJsonArray processProjects(bool topLevel, const QStringList &proFiles, ProFileGlobals *option, QMakeVfs *vfs, QMakeParser *parser, bool *fail) { QJsonArray result; - foreach (const QString &proFile, proFiles) { + for (const QString &proFile : proFiles) { if (!outDirMap.isEmpty()) option->setDirectories(QFileInfo(proFile).path(), outDirMap[proFile]); diff --git a/src/linguist/lrelease/main.cpp b/src/linguist/lrelease/main.cpp index 861b4cfde..b63c21dc6 100644 --- a/src/linguist/lrelease/main.cpp +++ b/src/linguist/lrelease/main.cpp @@ -164,7 +164,7 @@ static bool releaseTsFile(const QString& tsFileName, return false; QString qmFileName = tsFileName; - foreach (const Translator::FileFormat &fmt, Translator::registeredFileFormats()) { + for (const Translator::FileFormat &fmt : qAsConst(Translator::registeredFileFormats())) { if (qmFileName.endsWith(QLatin1Char('.') + fmt.extension)) { qmFileName.chop(fmt.extension.length() + 1); break; @@ -305,7 +305,7 @@ int main(int argc, char **argv) inputFiles = translationsFromProjects(projectDescription); } - foreach (const QString &inputFile, inputFiles) { + for (const QString &inputFile : qAsConst(inputFiles)) { if (outputFile.isEmpty()) { if (!releaseTsFile(inputFile, cd, removeIdentical)) return 1; diff --git a/src/linguist/lupdate/cpp.cpp b/src/linguist/lupdate/cpp.cpp index 11eda3df2..bbab74649 100644 --- a/src/linguist/lupdate/cpp.cpp +++ b/src/linguist/lupdate/cpp.cpp @@ -56,7 +56,7 @@ size_t qHash(const HashStringList &list) { if (list.m_hash & 0x80000000) { uint hash = 0; - foreach (const HashString &qs, list.m_list) { + for (const HashString &qs : list.m_list) { hash ^= qHash(qs) ^ 0x6ad9f526; hash = ((hash << 13) & 0x7fffffff) | (hash >> 18); } @@ -988,7 +988,7 @@ bool CppParser::visitNamespace(const NamespaceList &namespaces, int nsCount, if ((this->*callback)(ns, context)) return true; supers: - foreach (const ParseResults *sup, rslt->includes) + for (const ParseResults *sup : rslt->includes) if (vr.tryVisit(sup->fileId) && visitNamespace(namespaces, nsCount, callback, context, vr, sup)) return true; @@ -1045,7 +1045,7 @@ bool CppParser::qualifyOneCallbackOwn(const Namespace *ns, void *context) const bool CppParser::qualifyOneCallbackUsing(const Namespace *ns, void *context) const { QualifyOneData *data = (QualifyOneData *)context; - foreach (const HashStringList &use, ns->usings) + for (const HashStringList &use : ns->usings) if (!data->visitedUsings->contains(use)) { data->visitedUsings->insert(use); if (qualifyOne(use.value(), use.value().count(), data->segment, data->resolved, @@ -1130,7 +1130,7 @@ bool CppParser::fullyQualify(const NamespaceList &namespaces, static QString strColons(QLatin1String("::")); NamespaceList segments; - foreach (const QString &str, quali.split(strColons)) // XXX slow, but needs to be fast(?) + for (const QString &str : quali.split(strColons)) // XXX slow, but needs to be fast(?) segments << HashString(str); return fullyQualify(namespaces, segments, isDeclaration, resolved, unresolved); } @@ -1237,7 +1237,7 @@ void CppFiles::addIncludeCycle(const QSet<QString> &fileNames) cycle->fileNames = fileNames; QSet<IncludeCycle *> intersectingCycles; - foreach (const QString &fileName, fileNames) { + for (const QString &fileName : fileNames) { IncludeCycle *intersectingCycle = includeCycles().value(fileName); if (intersectingCycle && !intersectingCycles.contains(intersectingCycle)) { @@ -1249,7 +1249,7 @@ void CppFiles::addIncludeCycle(const QSet<QString> &fileNames) } qDeleteAll(intersectingCycles); - foreach (const QString &fileName, cycle->fileNames) + for (const QString &fileName : qAsConst(cycle->fileNames)) includeCycles().insert(fileName, cycle); } @@ -1264,7 +1264,7 @@ void CppParser::processInclude(const QString &file, ConversionData &cd, const QS { QString cleanFile = QDir::cleanPath(file); - foreach (const QString &ex, cd.m_excludes) { + for (const QString &ex : qAsConst(cd.m_excludes)) { QRegularExpression rx(QRegularExpression::wildcardToRegularExpression(ex)); if (rx.match(cleanFile).hasMatch()) return; @@ -1308,7 +1308,7 @@ void CppParser::processInclude(const QString &file, ConversionData &cd, const QS inclusions.insert(cleanFile); if (isIndirect) { CppParser parser; - foreach (const QString &projectRoot, cd.m_projectRoots) + for (const QString &projectRoot : qAsConst(cd.m_projectRoots)) if (cleanFile.startsWith(projectRoot)) { parser.setTranslator(new Translator); break; @@ -1705,13 +1705,13 @@ void CppParser::parseInternal(ConversionData &cd, const QStringList &includeStac } Q_FALLTHROUGH(); case Tok_AngledInclude: { - QStringList cSources = cd.m_allCSources.values(yyWord); + const QStringList cSources = cd.m_allCSources.values(yyWord); if (!cSources.isEmpty()) { - foreach (const QString &cSource, cSources) + for (const QString &cSource : cSources) processInclude(cSource, cd, includeStack, inclusions); goto incOk; } - foreach (const QString &incPath, cd.m_includePath) { + for (const QString &incPath : qAsConst(cd.m_includePath)) { text = QDir(incPath).absoluteFilePath(yyWord); text.detach(); if (QFileInfo(text).isFile()) { @@ -2228,7 +2228,7 @@ void loadCPP(Translator &translator, const QStringList &filenames, ConversionDat { QStringConverter::Encoding e = cd.m_sourceIsUtf16 ? QStringConverter::Utf16 : QStringConverter::Utf8; - foreach (const QString &filename, filenames) { + for (const QString &filename : filenames) { if (!CppFiles::getResults(filename).isEmpty() || CppFiles::isBlacklisted(filename)) continue; @@ -2250,10 +2250,10 @@ void loadCPP(Translator &translator, const QStringList &filenames, ConversionDat parser.recordResults(isHeader(filename)); } - foreach (const QString &filename, filenames) { + for (const QString &filename : filenames) { if (!CppFiles::isBlacklisted(filename)) { if (const Translator *tor = CppFiles::getTranslator(filename)) { - foreach (const TranslatorMessage &msg, tor->messages()) + for (const TranslatorMessage &msg : tor->messages()) translator.extend(msg, cd); } } diff --git a/src/linguist/lupdate/main.cpp b/src/linguist/lupdate/main.cpp index 3a3ff76a8..540dbb920 100644 --- a/src/linguist/lupdate/main.cpp +++ b/src/linguist/lupdate/main.cpp @@ -112,7 +112,7 @@ void TrFunctionAliasManager::ensureTrFunctionHashUpdated() const QHash<QString, TrFunction> nameToTrFunctionMap; for (int i = 0; i < NumTrFunctions; ++i) - foreach (const QString &alias, m_trFunctionAliases[i]) + for (const QString &alias : m_trFunctionAliases[i]) nameToTrFunctionMap[alias] = TrFunction(i); // commit: m_nameToTrFunctionMap.swap(nameToTrFunctionMap); @@ -208,7 +208,7 @@ static void recursiveFileInfoList(const QDir &dir, const QSet<QString> &nameFilters, QDir::Filters filter, QFileInfoList *fileinfolist) { - foreach (const QFileInfo &fi, dir.entryInfoList(filter)) + for (const QFileInfo &fi : dir.entryInfoList(filter)) if (fi.isDir()) recursiveFileInfoList(QDir(fi.absoluteFilePath()), nameFilters, filter, fileinfolist); else if (nameFilters.contains(fi.suffix())) @@ -299,7 +299,7 @@ static void printUsage() static bool handleTrFunctionAliases(const QString &arg) { - foreach (const QString &pair, arg.split(QLatin1Char(','), Qt::SkipEmptyParts)) { + for (const QString &pair : arg.split(QLatin1Char(','), Qt::SkipEmptyParts)) { const int equalSign = pair.indexOf(QLatin1Char('=')); if (equalSign < 0) { printErr(LU::tr("tr-function mapping '%1' in -tr-function-alias is missing the '='.\n").arg(pair)); @@ -340,7 +340,7 @@ static void updateTsFiles(const Translator &fetchedTor, const QStringList &tsFil } QList<Translator> aliens; - foreach (const QString &fileName, alienFiles) { + for (const QString &fileName : alienFiles) { ConversionData cd; Translator tor; if (!tor.load(fileName, cd, QLatin1String("auto"))) { @@ -354,7 +354,7 @@ static void updateTsFiles(const Translator &fetchedTor, const QStringList &tsFil QDir dir; QString err; - foreach (const QString &fileName, tsFileNames) { + for (const QString &fileName : tsFileNames) { QString fn = dir.relativeFilePath(fileName); ConversionData cd; Translator tor; @@ -476,11 +476,11 @@ static QStringList getResources(const QString &resourceFile) static bool processTs(Translator &fetchedTor, const QString &file, ConversionData &cd) { - foreach (const Translator::FileFormat &fmt, Translator::registeredFileFormats()) { + for (const Translator::FileFormat &fmt : qAsConst(Translator::registeredFileFormats())) { if (file.endsWith(QLatin1Char('.') + fmt.extension, Qt::CaseInsensitive)) { Translator tor; if (tor.load(file, cd, fmt.extension)) { - foreach (TranslatorMessage msg, tor.messages()) { + for (TranslatorMessage msg : tor.messages()) { msg.setType(TranslatorMessage::Unfinished); msg.setTranslations(QStringList()); msg.setTranslatorComment(QString()); @@ -900,9 +900,9 @@ int main(int argc, char **argv) files << arg; } if (metTsFlag) { - foreach (const QString &file, files) { + for (const QString &file : qAsConst(files)) { bool found = false; - foreach (const Translator::FileFormat &fmt, Translator::registeredFileFormats()) { + for (const Translator::FileFormat &fmt : qAsConst(Translator::registeredFileFormats())) { if (file.endsWith(QLatin1Char('.') + fmt.extension, Qt::CaseInsensitive)) { QFileInfo fi(file); if (!fi.exists() || fi.isWritable()) { @@ -925,7 +925,7 @@ int main(int argc, char **argv) } else if (metXTsFlag) { alienFiles += files; } else { - foreach (const QString &file, files) { + for (const QString &file : qAsConst(files)) { QFileInfo fi(file); if (!fi.exists()) { printErr(LU::tr("lupdate error: File '%1' does not exist.\n").arg(file)); @@ -940,7 +940,7 @@ int main(int argc, char **argv) QDir dir = QDir(fi.filePath()); projectRoots.insert(dir.absolutePath() + QLatin1Char('/')); if (extensionsNameFilters.isEmpty()) { - foreach (QString ext, extensions.split(QLatin1Char(','))) { + for (QString ext : extensions.split(QLatin1Char(','))) { ext = ext.trimmed(); if (ext.startsWith(QLatin1Char('.'))) ext.remove(0, 1); @@ -953,7 +953,7 @@ int main(int argc, char **argv) QFileInfoList fileinfolist; recursiveFileInfoList(dir, extensionsNameFilters, filters, &fileinfolist); int scanRootLen = dir.absolutePath().length(); - foreach (const QFileInfo &fi, fileinfolist) { + for (const QFileInfo &fi : qAsConst(fileinfolist)) { QString fn = QDir::cleanPath(fi.absoluteFilePath()); if (fn.endsWith(QLatin1String(".qrc"), Qt::CaseInsensitive)) { resourceFiles << fn; diff --git a/src/linguist/lupdate/merge.cpp b/src/linguist/lupdate/merge.cpp index d9ea5dc96..8473e332a 100644 --- a/src/linguist/lupdate/merge.cpp +++ b/src/linguist/lupdate/merge.cpp @@ -325,7 +325,7 @@ Translator merge( The types of all the messages from the vernacular translator are updated according to the virgin translator. */ - foreach (TranslatorMessage m, tor.messages()) { + for (TranslatorMessage m : tor.messages()) { TranslatorMessage::Type newType = TranslatorMessage::Finished; if (m.sourceText().isEmpty() && m.id().isEmpty()) { @@ -446,7 +446,7 @@ Translator merge( Messages found only in the virgin translator are added to the vernacular translator. */ - foreach (const TranslatorMessage &mv, virginTor.messages()) { + for (const TranslatorMessage &mv : virginTor.messages()) { if (mv.sourceText().isEmpty() && mv.id().isEmpty()) { if (tor.find(mv.context()) >= 0) continue; @@ -477,8 +477,8 @@ Translator merge( /* "Alien" translators can be used to augment the vernacular translator. */ - foreach (const Translator &alf, aliens) { - foreach (TranslatorMessage mv, alf.messages()) { + for (const Translator &alf : aliens) { + for (TranslatorMessage mv : alf.messages()) { if (mv.sourceText().isEmpty() || !mv.isTranslated()) continue; int mvi = outTor.find(mv); diff --git a/src/linguist/lupdate/qdeclarative.cpp b/src/linguist/lupdate/qdeclarative.cpp index 903641f9f..753c239ad 100644 --- a/src/linguist/lupdate/qdeclarative.cpp +++ b/src/linguist/lupdate/qdeclarative.cpp @@ -276,7 +276,8 @@ QString createErrorString(const QString &filename, const QString &code, Parser & lines.append(QLatin1String("\n")); // sentinel. QString errorString; - foreach (const DiagnosticMessage &m, parser.diagnosticMessages()) { + const auto messages = parser.diagnosticMessages(); + for (const DiagnosticMessage &m : messages) { if (m.isWarning()) continue; diff --git a/src/linguist/shared/po.cpp b/src/linguist/shared/po.cpp index dd6fcbbf2..221d84853 100644 --- a/src/linguist/shared/po.cpp +++ b/src/linguist/shared/po.cpp @@ -103,10 +103,10 @@ static QString poEscapedString(const QString &prefix, const QString &keyword, if (lines.count() != 1 || lines.first().length() > MAX_LEN - keyword.length() - prefix.length() - 3) { - QStringList olines = lines; + const QStringList olines = lines; lines = QStringList(QString()); const int maxlen = MAX_LEN - prefix.length() - 2; - foreach (const QString &line, olines) { + for (const QString &line : olines) { int off = 0; while (off + maxlen < line.length()) { int idx = line.lastIndexOf(QLatin1Char(' '), off + maxlen - 1) + 1; @@ -138,7 +138,7 @@ static QString poEscapedString(const QString &prefix, const QString &keyword, static QString poEscapedLines(const QString &prefix, bool addSpace, const QStringList &lines) { QString out; - foreach (const QString &line, lines) { + for (const QString &line : lines) { out += prefix; if (addSpace && !line.isEmpty()) out += QLatin1Char(' ' ); @@ -447,7 +447,7 @@ bool loadPO(Translator &translator, QIODevice &dev, ConversionData &cd) QHash<QString, QByteArray> extras; QList<QByteArray> hdrOrder; QByteArray pluralForms; - foreach (const QByteArray &hdr, item.msgStr.first().split('\n')) { + for (const QByteArray &hdr : item.msgStr.first().split('\n')) { if (hdr.isEmpty()) continue; int idx = hdr.indexOf(':'); @@ -546,7 +546,7 @@ bool loadPO(Translator &translator, QIODevice &dev, ConversionData &cd) msg.setContext(toUnicode(item.context)); if (!item.references.isEmpty()) { QString xrefs; - foreach (const QString &ref, + for (const QString &ref : QString(toUnicode(item.references)).split( QRegularExpression(QLatin1String("\\s")), Qt::SkipEmptyParts)) { int pos = ref.indexOf(QLatin1Char(':')); @@ -575,7 +575,7 @@ bool loadPO(Translator &translator, QIODevice &dev, ConversionData &cd) msg.setTranslatorComment(toUnicode(item.translatorComments)); msg.setPlural(item.isPlural || item.msgStr.size() > 1); QStringList translations; - foreach (const QByteArray &bstr, item.msgStr) { + for (const QByteArray &bstr : qAsConst(item.msgStr)) { QString str = toUnicode(bstr); str.replace(QChar(Translator::TextVariantSeparator), QChar(Translator::BinaryVariantSeparator)); @@ -737,7 +737,7 @@ bool savePO(const Translator &translator, QIODevice &dev, ConversionData &) QTextStream out(&dev); bool qtContexts = false; - foreach (const TranslatorMessage &msg, translator.messages()) + for (const TranslatorMessage &msg : translator.messages()) if (!msg.context().isEmpty()) { qtContexts = true; break; @@ -769,7 +769,7 @@ bool savePO(const Translator &translator, QIODevice &dev, ConversionData &) if (qtContexts) addPoHeader(headers, hdrOrder, "X-Qt-Contexts", QLatin1String("true")); QString hdrStr; - foreach (const QString &hdr, hdrOrder) { + for (const QString &hdr : qAsConst(hdrOrder)) { hdrStr += hdr; hdrStr += QLatin1String(": "); hdrStr += headers.value(makePoHeader(hdr)); @@ -777,7 +777,7 @@ bool savePO(const Translator &translator, QIODevice &dev, ConversionData &) } out << poEscapedString(QString(), QString::fromLatin1("msgstr"), true, hdrStr); - foreach (const TranslatorMessage &msg, translator.messages()) { + for (const TranslatorMessage &msg : translator.messages()) { out << Qt::endl; if (!msg.translatorComment().isEmpty()) @@ -792,7 +792,7 @@ bool savePO(const Translator &translator, QIODevice &dev, ConversionData &) QString xrefs = msg.extra(QLatin1String("po-references")); if (!msg.fileName().isEmpty() || !xrefs.isEmpty()) { QStringList refs; - foreach (const TranslatorMessage::Reference &ref, msg.allReferences()) + for (const TranslatorMessage::Reference &ref : msg.allReferences()) refs.append(QString(QLatin1String("%2:%1")) .arg(ref.lineNumber()).arg(ref.fileName())); if (!xrefs.isEmpty()) @@ -809,8 +809,8 @@ bool savePO(const Translator &translator, QIODevice &dev, ConversionData &) TranslatorMessage::ExtraData::const_iterator itr = msg.extras().find(QLatin1String("po-flags")); if (itr != msg.extras().end()) { - QStringList atoms = itr->split(QLatin1String(", ")); - foreach (const QString &atom, atoms) + const QStringList atoms = itr->split(QLatin1String(", ")); + for (const QString &atom : atoms) if (atom.endsWith(str_format)) { skipFormat = true; break; diff --git a/src/linguist/shared/profileevaluator.cpp b/src/linguist/shared/profileevaluator.cpp index 77f7f6dbd..f89ff8eef 100644 --- a/src/linguist/shared/profileevaluator.cpp +++ b/src/linguist/shared/profileevaluator.cpp @@ -73,7 +73,7 @@ QStringList ProFileEvaluator::values(const QString &variableName) const const ProStringList &values = d->values(ProKey(variableName)); QStringList ret; ret.reserve(values.size()); - foreach (const ProString &str, values) + for (const ProString &str : values) ret << d->m_option->expandEnvVars(str.toQString()); return ret; } @@ -84,7 +84,7 @@ QStringList ProFileEvaluator::values(const QString &variableName, const ProFile const ProStringList &values = d->m_valuemapStack.front().value(ProKey(variableName)); QStringList ret; ret.reserve(values.size()); - foreach (const ProString &str, values) + for (const ProString &str : values) if (str.sourceFile() == pro->id()) ret << d->m_option->expandEnvVars(str.toQString()); return ret; @@ -109,7 +109,7 @@ QStringList ProFileEvaluator::absolutePathValues( const QString &variable, const QString &baseDirectory) const { QStringList result; - foreach (const QString &el, values(variable)) { + for (const QString &el : values(variable)) { QString absEl = IoUtils::isAbsolutePath(el) ? sysrootify(el, baseDirectory) : IoUtils::resolvePath(baseDirectory, el); if (IoUtils::fileType(absEl) == IoUtils::FileIsDir) @@ -123,7 +123,8 @@ QStringList ProFileEvaluator::absoluteFileValues( const ProFile *pro) const { QStringList result; - foreach (const QString &el, pro ? values(variable, pro) : values(variable)) { + const auto vals = pro ? values(variable, pro) : values(variable); + for (const QString &el : vals) { QString absEl; if (IoUtils::isAbsolutePath(el)) { const QString elWithSysroot = QDir::cleanPath(sysrootify(el, baseDirectory)); @@ -133,7 +134,7 @@ QStringList ProFileEvaluator::absoluteFileValues( } absEl = elWithSysroot; } else { - foreach (const QString &dir, searchDirs) { + for (const QString &dir : searchDirs) { QString fn = QDir::cleanPath(dir + QLatin1Char('/') + el); if (d->m_vfs->exists(fn, QMakeVfs::VfsCumulative)) { result << fn; @@ -154,7 +155,7 @@ QStringList ProFileEvaluator::absoluteFileValues( absEl.length() - nameOff - 1); if (wildcard.contains(QLatin1Char('*')) || wildcard.contains(QLatin1Char('?'))) { QDir theDir(absDir); - foreach (const QString &fn, theDir.entryList(QStringList(wildcard))) + for (const QString &fn : theDir.entryList(QStringList(wildcard))) if (fn != QLatin1String(".") && fn != QLatin1String("..")) result << absDir + QLatin1Char('/') + fn; } // else if (acceptMissing) diff --git a/src/linguist/shared/qm.cpp b/src/linguist/shared/qm.cpp index 5f0b0335f..c638e4e73 100644 --- a/src/linguist/shared/qm.cpp +++ b/src/linguist/shared/qm.cpp @@ -287,7 +287,7 @@ void Releaser::squeeze(TranslatorSaveMode mode) { m_dependencyArray.clear(); QDataStream depstream(&m_dependencyArray, QIODevice::WriteOnly); - foreach (const QString &dep, m_dependencies) + for (const QString &dep : qAsConst(m_dependencies)) depstream << dep; if (m_messages.isEmpty() && mode == SaveEverything) @@ -631,7 +631,7 @@ bool loadQM(Translator &translator, QIODevice &dev, ConversionData &cd) static bool containsStripped(const Translator &translator, const TranslatorMessage &msg) { - foreach (const TranslatorMessage &tmsg, translator.messages()) + for (const TranslatorMessage &tmsg : translator.messages()) if (tmsg.sourceText() == msg.sourceText() && tmsg.context() == msg.context() && tmsg.comment().isEmpty()) diff --git a/src/linguist/shared/qph.cpp b/src/linguist/shared/qph.cpp index a1895d387..9f1b0f2b4 100644 --- a/src/linguist/shared/qph.cpp +++ b/src/linguist/shared/qph.cpp @@ -154,7 +154,7 @@ static bool saveQPH(const Translator &translator, QIODevice &dev, ConversionData if (!languageCode.isEmpty() && languageCode != QLatin1String("C")) t << " sourcelanguage=\"" << languageCode << "\""; t << ">\n"; - foreach (const TranslatorMessage &msg, translator.messages()) { + for (const TranslatorMessage &msg : translator.messages()) { t << "<phrase>\n"; t << " <source>" << protect(msg.sourceText()) << "</source>\n"; QString str = msg.translations().join(QLatin1Char('@')); diff --git a/src/linguist/shared/simtexth.cpp b/src/linguist/shared/simtexth.cpp index 996b431b1..feb570178 100644 --- a/src/linguist/shared/simtexth.cpp +++ b/src/linguist/shared/simtexth.cpp @@ -190,7 +190,7 @@ CandidateList similarTextHeuristicCandidates(const Translator *tor, CandidateList candidates; StringSimilarityMatcher matcher(text); - foreach (const TranslatorMessage &mtm, tor->messages()) { + for (const TranslatorMessage &mtm : tor->messages()) { if (mtm.type() == TranslatorMessage::Unfinished || mtm.translation().isEmpty()) continue; diff --git a/src/linguist/shared/translator.cpp b/src/linguist/shared/translator.cpp index 50dc7f8cc..7fb464e6b 100644 --- a/src/linguist/shared/translator.cpp +++ b/src/linguist/shared/translator.cpp @@ -212,7 +212,7 @@ void Translator::appendSorted(const TranslatorMessage &msg) // Working vars int prevLine = 0; int curIdx = 0; - foreach (const TranslatorMessage &mit, m_messages) { + for (const TranslatorMessage &mit : qAsConst(m_messages)) { bool sameFile = mit.fileName() == msg.fileName() && mit.context() == msg.context(); int curLine; if (sameFile && (curLine = mit.lineNumber()) >= prevLine) { @@ -257,7 +257,7 @@ static QString guessFormat(const QString &filename, const QString &format) if (format != QLatin1String("auto")) return format; - foreach (const Translator::FileFormat &fmt, Translator::registeredFileFormats()) { + for (const Translator::FileFormat &fmt : qAsConst(Translator::registeredFileFormats())) { if (filename.endsWith(QLatin1Char('.') + fmt.extension, Qt::CaseInsensitive)) return fmt.extension; } @@ -294,7 +294,7 @@ bool Translator::load(const QString &filename, ConversionData &cd, const QString QString fmt = guessFormat(filename, format); - foreach (const FileFormat &format, registeredFileFormats()) { + for (const FileFormat &format : qAsConst(registeredFileFormats())) { if (fmt == format.extension) { if (format.loader) return (*format.loader)(*this, file, cd); @@ -335,7 +335,7 @@ bool Translator::save(const QString &filename, ConversionData &cd, const QString QString fmt = guessFormat(filename, format); cd.m_targetDir = QFileInfo(filename).absoluteDir(); - foreach (const FileFormat &format, registeredFileFormats()) { + for (const FileFormat &format : qAsConst(registeredFileFormats())) { if (fmt == format.extension) { if (format.saver) return (*format.saver)(*this, file, cd); @@ -385,8 +385,8 @@ int Translator::find(const QString &context, if (!refs.isEmpty()) { for (TMM::ConstIterator it = m_messages.constBegin(); it != m_messages.constEnd(); ++it) { if (it->context() == context && it->comment() == comment) { - foreach (const TranslatorMessage::Reference &itref, it->allReferences()) { - foreach (const TranslatorMessage::Reference &ref, refs) { + for (const TranslatorMessage::Reference &itref : it->allReferences()) { + for (const TranslatorMessage::Reference &ref : refs) { if (itref == ref) return it - m_messages.constBegin(); } @@ -492,7 +492,7 @@ void Translator::dropUiLines() for (TMM::Iterator it = m_messages.begin(); it != m_messages.end(); ++it) { QHash<QString, int> have; QList<TranslatorMessage::Reference> refs; - foreach (const TranslatorMessage::Reference &itref, it->allReferences()) { + for (const TranslatorMessage::Reference &itref : it->allReferences()) { const QString &fn = itref.fileName(); if (fn.endsWith(uiXt) || fn.endsWith(juiXt)) { if (++have[fn] == 1) @@ -632,9 +632,9 @@ void Translator::reportDuplicates(const Duplicates &dupes, std::cerr << "'\n(try -verbose for more info).\n"; } else { std::cerr << "':\n"; - foreach (int i, dupes.byId) + for (int i : dupes.byId) std::cerr << "\n* ID: " << qPrintable(message(i).id()) << std::endl; - foreach (int j, dupes.byContents) { + for (int j : dupes.byContents) { const TranslatorMessage &msg = message(j); std::cerr << "\n* Context: " << qPrintable(msg.context()) << "\n* Source: " << qPrintable(msg.sourceText()) << std::endl; @@ -651,9 +651,9 @@ void Translator::makeFileNamesAbsolute(const QDir &originalPath) { for (TMM::iterator it = m_messages.begin(); it != m_messages.end(); ++it) { TranslatorMessage &msg = *it; - TranslatorMessage::References refs = msg.allReferences(); + const TranslatorMessage::References refs = msg.allReferences(); msg.setReferences(TranslatorMessage::References()); - foreach (const TranslatorMessage::Reference &ref, refs) { + for (const TranslatorMessage::Reference &ref : refs) { QString fileName = ref.fileName(); QFileInfo fi (fileName); if (fi.isRelative()) @@ -663,7 +663,7 @@ void Translator::makeFileNamesAbsolute(const QDir &originalPath) } } -QList<TranslatorMessage> Translator::messages() const +const QList<TranslatorMessage> &Translator::messages() const { return m_messages; } @@ -721,7 +721,7 @@ void Translator::normalizeTranslations(ConversionData &cd) QString Translator::guessLanguageCodeFromFileName(const QString &filename) { QString str = filename; - foreach (const FileFormat &format, registeredFileFormats()) { + for (const FileFormat &format : qAsConst(registeredFileFormats())) { if (str.endsWith(format.extension)) { str = str.left(str.size() - format.extension.size() - 1); break; diff --git a/src/linguist/shared/translator.h b/src/linguist/shared/translator.h index 0d3880c13..285146813 100644 --- a/src/linguist/shared/translator.h +++ b/src/linguist/shared/translator.h @@ -158,7 +158,7 @@ public: void setLanguageCode(const QString &languageCode) { m_language = languageCode; } void setSourceLanguageCode(const QString &languageCode) { m_sourceLanguage = languageCode; } static QString guessLanguageCodeFromFileName(const QString &fileName); - QList<TranslatorMessage> messages() const; + const QList<TranslatorMessage> &messages() const; static QStringList normalizedTranslations(const TranslatorMessage &m, int numPlurals); void normalizeTranslations(ConversionData &cd); QStringList normalizedTranslations(const TranslatorMessage &m, ConversionData &cd, bool *ok) const; diff --git a/src/linguist/shared/translatormessage.cpp b/src/linguist/shared/translatormessage.cpp index 0cc17f1de..fbdb88b31 100644 --- a/src/linguist/shared/translatormessage.cpp +++ b/src/linguist/shared/translatormessage.cpp @@ -74,7 +74,7 @@ void TranslatorMessage::addReferenceUniq(const QString &fileName, int lineNumber if (fileName == m_fileName && lineNumber == m_lineNumber) return; if (!m_extraRefs.isEmpty()) { // Rather common case, so special-case it - foreach (const Reference &ref, m_extraRefs) { + for (const Reference &ref : qAsConst(m_extraRefs)) { if (fileName == ref.fileName() && lineNumber == ref.lineNumber()) return; } diff --git a/src/linguist/shared/translatormessage.h b/src/linguist/shared/translatormessage.h index a8a34d2fd..3c3726d2a 100644 --- a/src/linguist/shared/translatormessage.h +++ b/src/linguist/shared/translatormessage.h @@ -88,7 +88,7 @@ public: void appendTranslation(const QString &translation) { m_translations.append(translation); } bool isTranslated() const { - foreach (const QString &trans, m_translations) + for (const QString &trans : m_translations) if (!trans.isEmpty()) return true; return false; diff --git a/src/linguist/shared/ts.cpp b/src/linguist/shared/ts.cpp index ae52c5287..9a6f8b2b7 100644 --- a/src/linguist/shared/ts.cpp +++ b/src/linguist/shared/ts.cpp @@ -478,7 +478,7 @@ static void writeExtras(QTextStream &t, const char *indent, } } outs.sort(); - foreach (const QString &out, outs) + for (const QString &out : qAsConst(outs)) t << indent << out << Qt::endl; } @@ -523,10 +523,10 @@ bool saveTS(const Translator &translator, QIODevice &dev, ConversionData &cd) t << " sourcelanguage=\"" << languageCode << "\""; t << ">\n"; - QStringList deps = translator.dependencies(); + const QStringList deps = translator.dependencies(); if (!deps.isEmpty()) { t << "<dependencies>\n"; - foreach (const QString &dep, deps) + for (const QString &dep : deps) t << "<dependency catalog=\"" << dep << "\"/>\n"; t << "</dependencies>\n"; } @@ -537,7 +537,7 @@ bool saveTS(const Translator &translator, QIODevice &dev, ConversionData &cd) QHash<QString, QList<TranslatorMessage> > messageOrder; QList<QString> contextOrder; - foreach (const TranslatorMessage &msg, translator.messages()) { + for (const TranslatorMessage &msg : translator.messages()) { // no need for such noise if ((msg.type() == TranslatorMessage::Obsolete || msg.type() == TranslatorMessage::Vanished) && msg.translation().isEmpty()) { @@ -554,12 +554,12 @@ bool saveTS(const Translator &translator, QIODevice &dev, ConversionData &cd) QHash<QString, int> currentLine; QString currentFile; - foreach (const QString &context, contextOrder) { + for (const QString &context : qAsConst(contextOrder)) { t << "<context>\n" " <name>" << protect(context) << "</name>\n"; - foreach (const TranslatorMessage &msg, messageOrder[context]) { + for (const TranslatorMessage &msg : qAsConst(messageOrder[context])) { //msg.dump(); t << " <message"; @@ -571,7 +571,7 @@ bool saveTS(const Translator &translator, QIODevice &dev, ConversionData &cd) if (translator.locationsType() != Translator::NoLocations) { QString cfile = currentFile; bool first = true; - foreach (const TranslatorMessage::Reference &ref, msg.allReferences()) { + for (const TranslatorMessage::Reference &ref : msg.allReferences()) { QString fn = cd.m_targetDir.relativeFilePath(ref.fileName()) .replace(QLatin1Char('\\'),QLatin1Char('/')); int ln = ref.lineNumber(); diff --git a/src/linguist/shared/xliff.cpp b/src/linguist/shared/xliff.cpp index cb65e6ac6..71b3305e3 100644 --- a/src/linguist/shared/xliff.cpp +++ b/src/linguist/shared/xliff.cpp @@ -194,7 +194,8 @@ static void writeLineNumber(QTextStream &ts, const TranslatorMessage &msg, int i writeIndent(ts, indent); ts << "<context-group purpose=\"location\"><context context-type=\"linenumber\">" << msg.lineNumber() << "</context></context-group>\n"; - foreach (const TranslatorMessage::Reference &ref, msg.extraReferences()) { + const auto refs = msg.extraReferences(); + for (const TranslatorMessage::Reference &ref : refs) { writeIndent(ts, indent); ts << "<context-group purpose=\"location\">"; if (ref.fileName() != msg.fileName()) @@ -764,7 +765,7 @@ bool saveXLIFF(const Translator &translator, QIODevice &dev, ConversionData &cd) QHash<QString, QHash<QString, QList<TranslatorMessage> > > messageOrder; QHash<QString, QList<QString> > contextOrder; QList<QString> fileOrder; - foreach (const TranslatorMessage &msg, translator.messages()) { + for (const TranslatorMessage &msg : translator.messages()) { QString fn = msg.fileName(); if (fn.isEmpty() && msg.type() == TranslatorMessage::Obsolete) fn = QLatin1String(MAGIC_OBSOLETE_REFERENCE); @@ -791,7 +792,7 @@ bool saveXLIFF(const Translator &translator, QIODevice &dev, ConversionData &cd) sourceLanguageCode.replace(QLatin1Char('_'), QLatin1Char('-')); QString languageCode = translator.languageCode(); languageCode.replace(QLatin1Char('_'), QLatin1Char('-')); - foreach (const QString &fn, fileOrder) { + for (const QString &fn : qAsConst(fileOrder)) { writeIndent(ts, indent); ts << "<file original=\"" << fn << "\"" << " datatype=\"" << dataType(messageOrder[fn].begin()->first()) << "\"" @@ -800,7 +801,7 @@ bool saveXLIFF(const Translator &translator, QIODevice &dev, ConversionData &cd) << "><body>\n"; ++indent; - foreach (const QString &ctx, contextOrder[fn]) { + for (const QString &ctx : qAsConst(contextOrder[fn])) { if (!ctx.isEmpty()) { writeIndent(ts, indent); ts << "<group restype=\"" << restypeContext << "\"" @@ -808,7 +809,7 @@ bool saveXLIFF(const Translator &translator, QIODevice &dev, ConversionData &cd) ++indent; } - foreach (const TranslatorMessage &msg, messageOrder[fn][ctx]) + for (const TranslatorMessage &msg : qAsConst(messageOrder[fn][ctx])) writeMessage(ts, msg, drops, indent); if (!ctx.isEmpty()) { |