Utils: Use range-based for in QrcParser

+ Avoid modifying the list while iterating it, and also avoid second scan.

Change-Id: Idea74c338e24c300dbc3ca2e4f50797914cc5a1a
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
Orgad Shaneh
2020-06-13 23:34:35 +03:00
committed by Orgad Shaneh
parent 890d96d63b
commit a050ae84e2

View File

@@ -551,18 +551,21 @@ const QStringList QrcParserPrivate::allUiLanguages(const QLocale *locale) const
{ {
if (!locale) if (!locale)
return languages(); return languages();
QStringList langs = locale->uiLanguages(); bool hasEmptyString = false;
foreach (const QString &language, langs) { // qt4 support const QStringList langs = locale->uiLanguages();
if (language.contains(QLatin1Char('_')) || language.contains(QLatin1Char('-'))) { QStringList allLangs = langs;
QStringList splits = QString(language).replace(QLatin1Char('_'), QLatin1Char('-')) for (const QString &language : langs) {
.split(QLatin1Char('-')); if (language.isEmpty())
hasEmptyString = true;
else if (language.contains('_') || language.contains('-')) {
const QStringList splits = QString(language).replace('_', '-').split('-');
if (splits.size() > 1 && !langs.contains(splits.at(0))) if (splits.size() > 1 && !langs.contains(splits.at(0)))
langs.append(splits.at(0)); allLangs.append(splits.at(0));
} }
} }
if (!langs.contains(QString())) if (!hasEmptyString)
langs.append(QString()); allLangs.append(QString());
return langs; return allLangs;
} }
// ---------------- // ----------------