From 6ceb674ac44ae4653e802c66bcf809beaa3a0117 Mon Sep 17 00:00:00 2001 From: Ivailo Monev Date: Wed, 7 Aug 2019 19:25:26 +0000 Subject: [PATCH] make QLocale::matchingLocales() behave as documented Signed-off-by: Ivailo Monev --- src/core/tools/qlocale.cpp | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/core/tools/qlocale.cpp b/src/core/tools/qlocale.cpp index c6065289a..bb0af8b57 100644 --- a/src/core/tools/qlocale.cpp +++ b/src/core/tools/qlocale.cpp @@ -1688,15 +1688,21 @@ QList QLocale::matchingLocales(QLocale::Language language, return QList(); QList result; - if (language == QLocale::AnyLanguage && script == QLocale::AnyScript && country == QLocale::AnyCountry) + if (language == QLocale::AnyLanguage && script == QLocale::AnyScript && country == QLocale::AnyCountry) { result.reserve(localeTblSize); - for (qint16 i = 0; i < localeTblSize; i++) { - if (localeTbl[i].m_language == language - && localeTbl[i].m_script == script - && localeTbl[i].m_country == country) { - QLocale locale(language, script, country); + for (qint16 i = 0; i < localeTblSize; i++) { + QLocale locale(localeTbl[i].m_language, localeTbl[i].m_script, localeTbl[i].m_country); result.append(locale); } + } else { + for (qint16 i = 0; i < localeTblSize; i++) { + if (localeTbl[i].m_language == language + && localeTbl[i].m_script == script + && localeTbl[i].m_country == country) { + QLocale locale(language, script, country); + result.append(locale); + } + } } return result; } -- 2.11.0