From 596c248a616e7c1e818ec8a4a59a8180daf8ce51 Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Tue, 15 Sep 2020 20:25:19 +0200 Subject: Linguist: Refactor iterators Use more const iterators. Fix mixing const iterators with non-const iterators. Use auto for iterators wherever easily possible. Change-Id: Ib6e73319971396e47bb0b0f5c252b8cf246de008 Reviewed-by: Friedemann Kleint --- src/linguist/linguist/formpreviewview.cpp | 6 ++-- src/linguist/lprodump/main.cpp | 4 +-- src/linguist/lupdate/cpp.cpp | 4 +-- src/linguist/lupdate/cpp_clang.cpp | 4 +-- src/linguist/lupdate/main.cpp | 38 ++++++++++----------- src/linguist/lupdate/merge.cpp | 7 ++-- src/linguist/lupdate/synchronized.h | 2 +- src/linguist/shared/po.cpp | 14 +++----- src/linguist/shared/profileevaluator.cpp | 4 +-- src/linguist/shared/qm.cpp | 22 +++++-------- src/linguist/shared/translator.cpp | 55 ++++++++++++++----------------- src/linguist/shared/translator.h | 2 +- src/linguist/shared/ts.cpp | 2 +- src/linguist/shared/xliff.cpp | 18 +++++----- 14 files changed, 82 insertions(+), 100 deletions(-) diff --git a/src/linguist/linguist/formpreviewview.cpp b/src/linguist/linguist/formpreviewview.cpp index 2446e0097..8aed545da 100644 --- a/src/linguist/linguist/formpreviewview.cpp +++ b/src/linguist/linguist/formpreviewview.cpp @@ -207,8 +207,8 @@ static void buildTargets(QObject *o, TargetsHash *targets) static void destroyTargets(TargetsHash *targets) { - for (TargetsHash::ConstIterator it = targets->cbegin(), end = targets->cend(); it != end; ++it) - for (const TranslatableEntry &target : *it) + for (const auto &targetList : qAsConst(*targets)) + for (const TranslatableEntry &target : targetList) if (target.type == TranslatableProperty) delete target.prop.name; targets->clear(); @@ -554,7 +554,7 @@ void FormPreviewView::setSourceContext(int model, MessageItem *messageItem) tsv.setQualifier(messageItem->comment().toUtf8()); m_highlights = m_targets.value(tsv); if (m_lastModel != model) { - for (TargetsHash::Iterator it = m_targets.begin(), end = m_targets.end(); it != end; ++it) + for (auto it = m_targets.cbegin(), end = m_targets.cend(); it != end; ++it) retranslateTargets(*it, it.key(), m_dataModel->model(model), m_lastClassName); m_lastModel = model; } else { diff --git a/src/linguist/lprodump/main.cpp b/src/linguist/lprodump/main.cpp index 85eedd8e4..9ef5faa9c 100644 --- a/src/linguist/lprodump/main.cpp +++ b/src/linguist/lprodump/main.cpp @@ -236,7 +236,7 @@ static QStringList getSources(const ProFileEvaluator &visitor, const QString &pr 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(); ) { + for (auto it = sourceFiles.begin(); it != sourceFiles.end(); ) { if (rx.match(*it).hasMatch()) it = sourceFiles.erase(it); else @@ -262,7 +262,7 @@ static void excludeProjects(const ProFileEvaluator &visitor, QStringList *subPro { for (const QString &ex : visitor.values(QLatin1String("TR_EXCLUDE"))) { QRegularExpression rx(QRegularExpression::wildcardToRegularExpression(ex)); - for (QStringList::Iterator it = subProjects->begin(); it != subProjects->end(); ) { + for (auto it = subProjects->begin(); it != subProjects->end(); ) { if (rx.match(*it).hasMatch()) it = subProjects->erase(it); else diff --git a/src/linguist/lupdate/cpp.cpp b/src/linguist/lupdate/cpp.cpp index bbab74649..ede034353 100644 --- a/src/linguist/lupdate/cpp.cpp +++ b/src/linguist/lupdate/cpp.cpp @@ -1023,7 +1023,7 @@ bool CppParser::qualifyOneCallbackOwn(const Namespace *ns, void *context) const *data->resolved << data->segment; return true; } - QHash::ConstIterator nsai = ns->aliases.constFind(data->segment); + auto nsai = ns->aliases.constFind(data->segment); if (nsai != ns->aliases.constEnd()) { const NamespaceList &nsl = *nsai; if (nsl.last().value().isEmpty()) { // Delayed alias resolution @@ -2210,7 +2210,7 @@ const ParseResults *CppParser::recordResults(bool isHeader) && results->rootNamespace.aliases.isEmpty() && results->rootNamespace.usings.isEmpty()) { // This is a forwarding header. Slash it. - pr = *results->includes.begin(); + pr = *results->includes.cbegin(); delete results; } else { results->fileId = nextFileId++; diff --git a/src/linguist/lupdate/cpp_clang.cpp b/src/linguist/lupdate/cpp_clang.cpp index 8bab9dba6..951714c7d 100644 --- a/src/linguist/lupdate/cpp_clang.cpp +++ b/src/linguist/lupdate/cpp_clang.cpp @@ -128,8 +128,8 @@ void ClangCppParser::loadCPP(Translator &translator, const QStringList &files, C sources.push_back(filename.toStdString()); } } - sourcesPP.insert(sourcesPP.end(), sources.begin(), sources.end()); - sourcesAst.insert(sourcesAst.end(), sources.begin(), sources.end()); + sourcesPP.insert(sourcesPP.cend(), sources.cbegin(), sources.cend()); + sourcesAst.insert(sourcesAst.cend(), sources.cbegin(), sources.cend()); int argc = 4; // NEED 2 empty one to start!!! otherwise: LLVM::ERROR diff --git a/src/linguist/lupdate/main.cpp b/src/linguist/lupdate/main.cpp index b8a8cf121..055a1b7ed 100644 --- a/src/linguist/lupdate/main.cpp +++ b/src/linguist/lupdate/main.cpp @@ -40,7 +40,6 @@ #include #include -#include #include #include #include @@ -91,9 +90,8 @@ int TrFunctionAliasManager::trFunctionByName(const QString &trFunctionName) cons { ensureTrFunctionHashUpdated(); // this function needs to be fast - const QHash::const_iterator it - = m_nameToTrFunctionMap.find(trFunctionName); - return it == m_nameToTrFunctionMap.end() ? -1 : *it; + const auto it = m_nameToTrFunctionMap.constFind(trFunctionName); + return it == m_nameToTrFunctionMap.cend() ? -1 : *it; } void TrFunctionAliasManager::modifyAlias(int trFunction, const QString &alias, Operation op) @@ -500,26 +498,26 @@ static void processSources(Translator &fetchedTor, bool requireQmlSupport = false; #endif QStringList sourceFilesCpp; - for (QStringList::const_iterator it = sourceFiles.begin(); it != sourceFiles.end(); ++it) { - if (it->endsWith(QLatin1String(".java"), Qt::CaseInsensitive)) - loadJava(fetchedTor, *it, cd); - else if (it->endsWith(QLatin1String(".ui"), Qt::CaseInsensitive) - || it->endsWith(QLatin1String(".jui"), Qt::CaseInsensitive)) - loadUI(fetchedTor, *it, cd); + for (const auto &sourceFile : sourceFiles) { + if (sourceFile.endsWith(QLatin1String(".java"), Qt::CaseInsensitive)) + loadJava(fetchedTor, sourceFile, cd); + else if (sourceFile.endsWith(QLatin1String(".ui"), Qt::CaseInsensitive) + || sourceFile.endsWith(QLatin1String(".jui"), Qt::CaseInsensitive)) + loadUI(fetchedTor, sourceFile, cd); #ifndef QT_NO_QML - else if (it->endsWith(QLatin1String(".js"), Qt::CaseInsensitive) - || it->endsWith(QLatin1String(".qs"), Qt::CaseInsensitive)) - loadQScript(fetchedTor, *it, cd); - else if (it->endsWith(QLatin1String(".qml"), Qt::CaseInsensitive)) - loadQml(fetchedTor, *it, cd); + else if (sourceFile.endsWith(QLatin1String(".js"), Qt::CaseInsensitive) + || sourceFile.endsWith(QLatin1String(".qs"), Qt::CaseInsensitive)) + loadQScript(fetchedTor, sourceFile, cd); + else if (sourceFile.endsWith(QLatin1String(".qml"), Qt::CaseInsensitive)) + loadQml(fetchedTor, sourceFile, cd); #else - else if (it->endsWith(QLatin1String(".qml"), Qt::CaseInsensitive) - || it->endsWith(QLatin1String(".js"), Qt::CaseInsensitive) - || it->endsWith(QLatin1String(".qs"), Qt::CaseInsensitive)) + else if (sourceFile.endsWith(QLatin1String(".qml"), Qt::CaseInsensitive) + || sourceFile.endsWith(QLatin1String(".js"), Qt::CaseInsensitive) + || sourceFile.endsWith(QLatin1String(".qs"), Qt::CaseInsensitive)) requireQmlSupport = true; #endif // QT_NO_QML - else if (!processTs(fetchedTor, *it, cd)) - sourceFilesCpp << *it; + else if (!processTs(fetchedTor, sourceFile, cd)) + sourceFilesCpp << sourceFile; } #ifdef QT_NO_QML diff --git a/src/linguist/lupdate/merge.cpp b/src/linguist/lupdate/merge.cpp index 8473e332a..9db8826c8 100644 --- a/src/linguist/lupdate/merge.cpp +++ b/src/linguist/lupdate/merge.cpp @@ -230,8 +230,7 @@ int applyNumberHeuristic(Translator &tor) TranslatorMessage &msg = tor.message(i); const QString &key = zeroKey(msg.sourceText()); if (!key.isEmpty()) { - QMap >::ConstIterator t = - translated.constFind(key); + const auto t = translated.constFind(key); if (t != translated.constEnd() && t->first != msg.sourceText()) { msg.setTranslation(translationAttempt(t->second, t->first, msg.sourceText())); @@ -268,7 +267,7 @@ int applySameTextHeuristic(Translator &tor) untranslated[i] = true; } else { const QString &key = msg.sourceText(); - QMap::ConstIterator t = translated.constFind(key); + const auto t = translated.constFind(key); if (t != translated.constEnd()) { /* The same source text is translated at least two @@ -287,7 +286,7 @@ int applySameTextHeuristic(Translator &tor) for (int i = 0; i < tor.messageCount(); ++i) { if (untranslated[i]) { TranslatorMessage &msg = tor.message(i); - QMap::ConstIterator t = translated.constFind(msg.sourceText()); + const auto t = translated.constFind(msg.sourceText()); if (t != translated.constEnd()) { msg.setTranslations(*t); ++inserted; diff --git a/src/linguist/lupdate/synchronized.h b/src/linguist/lupdate/synchronized.h index 8fe5d8ed0..5bf621a30 100644 --- a/src/linguist/lupdate/synchronized.h +++ b/src/linguist/lupdate/synchronized.h @@ -61,7 +61,7 @@ public: { QMutexLocker lock(&m_mutex); if (!m_vector.empty()) { - m_vector.insert(m_vector.end(), std::make_move_iterator(values.begin()), + m_vector.insert(m_vector.cend(), std::make_move_iterator(values.begin()), std::make_move_iterator(values.end())); } else { m_vector = std::move(values); diff --git a/src/linguist/shared/po.cpp b/src/linguist/shared/po.cpp index 221d84853..d9aa24bbd 100644 --- a/src/linguist/shared/po.cpp +++ b/src/linguist/shared/po.cpp @@ -534,9 +534,7 @@ bool loadPO(Translator &translator, QIODevice &dev, ConversionData &cd) extras[QLatin1String("po-header_comment")] = QByteArrayList_join(lines.mid(0, lastCmtLine + 1), '\n'); } - for (QHash::ConstIterator it = extras.constBegin(), - end = extras.constEnd(); - it != end; ++it) + for (auto it = extras.cbegin(), end = extras.cend(); it != end; ++it) translator.setExtra(it.key(), toUnicode(it.value())); item = PoItem(); continue; @@ -611,9 +609,8 @@ bool loadPO(Translator &translator, QIODevice &dev, ConversionData &cd) if (flags.removeOne(QLatin1String("fuzzy"))) item.isFuzzy = true; flags.removeOne(QLatin1String("qt-format")); - TranslatorMessage::ExtraData::const_iterator it = - item.extra.find(QLatin1String("po-flags")); - if (it != item.extra.end()) + const auto it = item.extra.constFind(QLatin1String("po-flags")); + if (it != item.extra.cend()) flags.prepend(*it); if (!flags.isEmpty()) item.extra[QLatin1String("po-flags")] = flags.join(QLatin1String(", ")); @@ -806,9 +803,8 @@ bool savePO(const Translator &translator, QIODevice &dev, ConversionData &) if ((msg.type() == TranslatorMessage::Unfinished || msg.type() == TranslatorMessage::Obsolete) && msg.isTranslated()) flags.append(QLatin1String("fuzzy")); - TranslatorMessage::ExtraData::const_iterator itr = - msg.extras().find(QLatin1String("po-flags")); - if (itr != msg.extras().end()) { + const auto itr = msg.extras().constFind(QLatin1String("po-flags")); + if (itr != msg.extras().cend()) { const QStringList atoms = itr->split(QLatin1String(", ")); for (const QString &atom : atoms) if (atom.endsWith(str_format)) { diff --git a/src/linguist/shared/profileevaluator.cpp b/src/linguist/shared/profileevaluator.cpp index f89ff8eef..77059fa94 100644 --- a/src/linguist/shared/profileevaluator.cpp +++ b/src/linguist/shared/profileevaluator.cpp @@ -219,9 +219,7 @@ void ProFileEvaluator::setCumulative(bool on) void ProFileEvaluator::setExtraVars(const QHash &extraVars) { ProValueMap map; - QHash::const_iterator it = extraVars.constBegin(); - QHash::const_iterator end = extraVars.constEnd(); - for ( ; it != end; ++it) + for (auto it = extraVars.cbegin(), end = extraVars.cend() ; it != end; ++it) map.insert(ProKey(it.key()), ProStringList(it.value())); d->setExtraVars(map); } diff --git a/src/linguist/shared/qm.cpp b/src/linguist/shared/qm.cpp index c638e4e73..6eb9c874d 100644 --- a/src/linguist/shared/qm.cpp +++ b/src/linguist/shared/qm.cpp @@ -293,7 +293,7 @@ void Releaser::squeeze(TranslatorSaveMode mode) if (m_messages.isEmpty() && mode == SaveEverything) return; - QMap messages = m_messages; + const auto messages = m_messages; // re-build contents m_messageArray.clear(); @@ -304,13 +304,11 @@ void Releaser::squeeze(TranslatorSaveMode mode) QMap offsets; QDataStream ms(&m_messageArray, QIODevice::WriteOnly); - QMap::const_iterator it, next; int cpPrev = 0, cpNext = 0; - for (it = messages.constBegin(); it != messages.constEnd(); ++it) { + for (auto it = messages.cbegin(), end = messages.cend(); it != end; ++it) { cpPrev = cpNext; - next = it; - ++next; - if (next == messages.constEnd()) + const auto next = std::next(it); + if (next == end) cpNext = 0; else cpNext = commonPrefix(it.key(), next.key()); @@ -318,10 +316,9 @@ void Releaser::squeeze(TranslatorSaveMode mode) writeMessage(it.key(), ms, mode, Prefix(qMax(cpPrev, cpNext + 1))); } - QMap::Iterator offset; - offset = offsets.begin(); + auto offset = offsets.cbegin(); QDataStream ds(&m_offsetArray, QIODevice::WriteOnly); - while (offset != offsets.end()) { + while (offset != offsets.cend()) { Offset k = offset.key(); ++offset; ds << quint32(k.h) << quint32(k.o); @@ -329,7 +326,7 @@ void Releaser::squeeze(TranslatorSaveMode mode) if (mode == SaveStripped) { QMap contextSet; - for (it = messages.constBegin(); it != messages.constEnd(); ++it) + for (auto it = messages.cbegin(), end = messages.cend(); it != end; ++it) ++contextSet[it.key().context()]; quint16 hTableSize; @@ -341,8 +338,7 @@ void Releaser::squeeze(TranslatorSaveMode mode) hTableSize = (contextSet.size() < 10000) ? 15013 : 3 * contextSet.size() / 2; QMultiMap hashMap; - QMap::const_iterator c; - for (c = contextSet.constBegin(); c != contextSet.constEnd(); ++c) + for (auto c = contextSet.cbegin(), end = contextSet.cend(); c != end; ++c) hashMap.insert(elfHash(c.key()) % hTableSize, c.key()); /* @@ -378,7 +374,7 @@ void Releaser::squeeze(TranslatorSaveMode mode) t << quint16(0); // the entry at offset 0 cannot be used uint upto = 2; - QMultiMap::const_iterator entry = hashMap.constBegin(); + auto entry = hashMap.constBegin(); while (entry != hashMap.constEnd()) { int i = entry.key(); hTable[i] = quint16(upto >> 1); diff --git a/src/linguist/shared/translator.cpp b/src/linguist/shared/translator.cpp index 7fb464e6b..ced5df322 100644 --- a/src/linguist/shared/translator.cpp +++ b/src/linguist/shared/translator.cpp @@ -383,12 +383,12 @@ int Translator::find(const QString &context, const QString &comment, const TranslatorMessage::References &refs) const { if (!refs.isEmpty()) { - for (TMM::ConstIterator it = m_messages.constBegin(); it != m_messages.constEnd(); ++it) { + for (auto it = m_messages.cbegin(), end = m_messages.cend(); it != end; ++it) { if (it->context() == context && it->comment() == comment) { - for (const TranslatorMessage::Reference &itref : it->allReferences()) { - for (const TranslatorMessage::Reference &ref : refs) { + for (const auto &itref : it->allReferences()) { + for (const auto &ref : refs) { if (itref == ref) - return it - m_messages.constBegin(); + return it - m_messages.cbegin(); } } } @@ -405,7 +405,7 @@ int Translator::find(const QString &context) const void Translator::stripObsoleteMessages() { - for (TMM::Iterator it = m_messages.begin(); it != m_messages.end(); ) + for (auto it = m_messages.begin(); it != m_messages.end(); ) if (it->type() == TranslatorMessage::Obsolete || it->type() == TranslatorMessage::Vanished) it = m_messages.erase(it); else @@ -415,7 +415,7 @@ void Translator::stripObsoleteMessages() void Translator::stripFinishedMessages() { - for (TMM::Iterator it = m_messages.begin(); it != m_messages.end(); ) + for (auto it = m_messages.begin(); it != m_messages.end(); ) if (it->type() == TranslatorMessage::Finished) it = m_messages.erase(it); else @@ -425,7 +425,7 @@ void Translator::stripFinishedMessages() void Translator::stripUntranslatedMessages() { - for (TMM::Iterator it = m_messages.begin(); it != m_messages.end(); ) + for (auto it = m_messages.begin(); it != m_messages.end(); ) if (!it->isTranslated()) it = m_messages.erase(it); else @@ -433,20 +433,18 @@ void Translator::stripUntranslatedMessages() m_indexOk = false; } -bool Translator::translationsExist() +bool Translator::translationsExist() const { - for (TMM::Iterator it = m_messages.begin(); it != m_messages.end(); ) { - if (it->isTranslated()) + for (const auto &message : m_messages) { + if (message.isTranslated()) return true; - else - ++it; } return false; } void Translator::stripEmptyContexts() { - for (TMM::Iterator it = m_messages.begin(); it != m_messages.end();) + for (auto it = m_messages.begin(); it != m_messages.end(); ) if (it->sourceText() == QLatin1String(ContextComment)) it = m_messages.erase(it); else @@ -456,7 +454,7 @@ void Translator::stripEmptyContexts() void Translator::stripNonPluralForms() { - for (TMM::Iterator it = m_messages.begin(); it != m_messages.end(); ) + for (auto it = m_messages.begin(); it != m_messages.end(); ) if (!it->isPlural()) it = m_messages.erase(it); else @@ -466,7 +464,7 @@ void Translator::stripNonPluralForms() void Translator::stripIdenticalSourceTranslations() { - for (TMM::Iterator it = m_messages.begin(); it != m_messages.end(); ) { + for (auto it = m_messages.begin(); it != m_messages.end(); ) { // we need to have just one translation, and it be equal to the source if (it->translations().count() == 1 && it->translation() == it->sourceText()) it = m_messages.erase(it); @@ -478,21 +476,21 @@ void Translator::stripIdenticalSourceTranslations() void Translator::dropTranslations() { - for (TMM::Iterator it = m_messages.begin(); it != m_messages.end(); ++it) { - if (it->type() == TranslatorMessage::Finished) - it->setType(TranslatorMessage::Unfinished); - it->setTranslation(QString()); + for (auto &message : m_messages) { + if (message.type() == TranslatorMessage::Finished) + message.setType(TranslatorMessage::Unfinished); + message.setTranslation(QString()); } } void Translator::dropUiLines() { - QString uiXt = QLatin1String(".ui"); - QString juiXt = QLatin1String(".jui"); - for (TMM::Iterator it = m_messages.begin(); it != m_messages.end(); ++it) { + const QString uiXt = QLatin1String(".ui"); + const QString juiXt = QLatin1String(".jui"); + for (auto &message : m_messages) { QHash have; QList refs; - for (const TranslatorMessage::Reference &itref : it->allReferences()) { + for (const auto &itref : message.allReferences()) { const QString &fn = itref.fileName(); if (fn.endsWith(uiXt) || fn.endsWith(juiXt)) { if (++have[fn] == 1) @@ -501,7 +499,7 @@ void Translator::dropUiLines() refs.append(itref); } } - it->setReferences(refs); + message.setReferences(refs); } } @@ -578,8 +576,7 @@ Translator::Duplicates Translator::resolveDuplicates() int oi; QSet *pDup; if (!msg.id().isEmpty()) { - QHash::ConstIterator it = - idRefs.constFind(TranslatorMessageIdPtr(msg)); + const auto it = idRefs.constFind(TranslatorMessageIdPtr(msg)); if (it != idRefs.constEnd()) { oi = *it; omsg = &m_messages[oi]; @@ -588,8 +585,7 @@ Translator::Duplicates Translator::resolveDuplicates() } } { - QHash::ConstIterator it = - contentRefs.constFind(TranslatorMessageContentPtr(msg)); + const auto it = contentRefs.constFind(TranslatorMessageContentPtr(msg)); if (it != contentRefs.constEnd()) { oi = *it; omsg = &m_messages[oi]; @@ -649,8 +645,7 @@ void Translator::reportDuplicates(const Duplicates &dupes, // Used by lupdate to be able to search using absolute paths during merging void Translator::makeFileNamesAbsolute(const QDir &originalPath) { - for (TMM::iterator it = m_messages.begin(); it != m_messages.end(); ++it) { - TranslatorMessage &msg = *it; + for (auto &msg : m_messages) { const TranslatorMessage::References refs = msg.allReferences(); msg.setReferences(TranslatorMessage::References()); for (const TranslatorMessage::Reference &ref : refs) { diff --git a/src/linguist/shared/translator.h b/src/linguist/shared/translator.h index 285146813..80bb201e1 100644 --- a/src/linguist/shared/translator.h +++ b/src/linguist/shared/translator.h @@ -139,7 +139,7 @@ public: void dropTranslations(); void dropUiLines(); void makeFileNamesAbsolute(const QDir &originalPath); - bool translationsExist(); + bool translationsExist() const; struct Duplicates { QSet byId, byContents; }; Duplicates resolveDuplicates(); diff --git a/src/linguist/shared/ts.cpp b/src/linguist/shared/ts.cpp index 9a6f8b2b7..a5daf7c90 100644 --- a/src/linguist/shared/ts.cpp +++ b/src/linguist/shared/ts.cpp @@ -470,7 +470,7 @@ static void writeExtras(QTextStream &t, const char *indent, const TranslatorMessage::ExtraData &extras, QRegularExpression drops) { QStringList outs; - for (Translator::ExtraData::ConstIterator it = extras.begin(); it != extras.end(); ++it) { + for (auto it = extras.cbegin(), end = extras.cend(); it != end; ++it) { if (!drops.match(it.key()).hasMatch()) { outs << (QStringLiteral("') + protect(it.value()) diff --git a/src/linguist/shared/xliff.cpp b/src/linguist/shared/xliff.cpp index 71b3305e3..ef380939e 100644 --- a/src/linguist/shared/xliff.cpp +++ b/src/linguist/shared/xliff.cpp @@ -177,7 +177,7 @@ static QString protect(const QString &str, bool makePhs = true) static void writeExtras(QTextStream &ts, int indent, const TranslatorMessage::ExtraData &extras, QRegularExpression drops) { - for (Translator::ExtraData::ConstIterator it = extras.begin(); it != extras.end(); ++it) { + for (auto it = extras.cbegin(), end = extras.cend(); it != end; ++it) { if (!drops.match(it.key()).hasMatch()) { writeIndent(ts, indent); ts << "' @@ -238,15 +238,16 @@ static void writeTransUnits(QTextStream &ts, const TranslatorMessage &msg, const QString msgidstr = !msg.id().isEmpty() ? msg.id() : QString::fromLatin1("_msg%1").arg(++msgid); QStringList translns = msg.translations(); - QHash::const_iterator it; QString pluralStr; QStringList sources(msg.sourceText()); - if ((it = msg.extras().find(QString::fromLatin1("po-msgid_plural"))) != msg.extras().end()) + const auto &extras = msg.extras(); + const auto extrasEnd = extras.cend(); + if (const auto it = extras.constFind(QString::fromLatin1("po-msgid_plural")); it != extrasEnd) sources.append(*it); QStringList oldsources; if (!msg.oldSourceText().isEmpty()) oldsources.append(msg.oldSourceText()); - if ((it = msg.extras().find(QString::fromLatin1("po-old_msgid_plural"))) != msg.extras().end()) { + if (const auto it = extras.constFind(QString::fromLatin1("po-old_msgid_plural")); it != extrasEnd) { if (oldsources.isEmpty()) { if (sources.count() == 2) oldsources.append(QString()); @@ -256,10 +257,9 @@ static void writeTransUnits(QTextStream &ts, const TranslatorMessage &msg, const oldsources.append(*it); } - QStringList::const_iterator - srcit = sources.begin(), srcend = sources.end(), - oldsrcit = oldsources.begin(), oldsrcend = oldsources.end(), - transit = translns.begin(), transend = translns.end(); + auto srcit = sources.cbegin(), srcend = sources.cend(), + oldsrcit = oldsources.cbegin(), oldsrcend = oldsources.cend(), + transit = translns.cbegin(), transend = translns.cend(); int plural = 0; QString source; while (srcit != srcend || oldsrcit != oldsrcend || transit != transend) { @@ -795,7 +795,7 @@ bool saveXLIFF(const Translator &translator, QIODevice &dev, ConversionData &cd) for (const QString &fn : qAsConst(fileOrder)) { writeIndent(ts, indent); ts << "first()) << "\"" + << " datatype=\"" << dataType(messageOrder[fn].cbegin()->first()) << "\"" << " source-language=\"" << sourceLanguageCode.toLatin1() << "\"" << " target-language=\"" << languageCode.toLatin1() << "\"" << ">\n"; -- cgit v1.2.3