diff options
Diffstat (limited to 'src/libs/utils/qrcparser.cpp')
-rw-r--r-- | src/libs/utils/qrcparser.cpp | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/src/libs/utils/qrcparser.cpp b/src/libs/utils/qrcparser.cpp index 6c053cc72b..5fcb4aa20f 100644 --- a/src/libs/utils/qrcparser.cpp +++ b/src/libs/utils/qrcparser.cpp @@ -551,18 +551,21 @@ const QStringList QrcParserPrivate::allUiLanguages(const QLocale *locale) const { if (!locale) return languages(); - QStringList langs = locale->uiLanguages(); - foreach (const QString &language, langs) { // qt4 support - if (language.contains(QLatin1Char('_')) || language.contains(QLatin1Char('-'))) { - QStringList splits = QString(language).replace(QLatin1Char('_'), QLatin1Char('-')) - .split(QLatin1Char('-')); - if (splits.size() > 1 && !langs.contains(splits.at(0))) - langs.append(splits.at(0)); + bool hasEmptyString = false; + const QStringList langs = locale->uiLanguages(); + QStringList allLangs = langs; + for (const QString &language : langs) { + if (language.isEmpty()) + hasEmptyString = true; + else if (language.contains('_') || language.contains('-')) { + const QStringList splits = QString(language).replace('_', '-').split('-'); + if (splits.size() > 1 && !allLangs.contains(splits.at(0))) + allLangs.append(splits.at(0)); } } - if (!langs.contains(QString())) - langs.append(QString()); - return langs; + if (!hasEmptyString) + allLangs.append(QString()); + return allLangs; } // ---------------- |