From 916008a50d88e19907e4e6aec921efd801818a00 Mon Sep 17 00:00:00 2001 From: Mate Barany Date: Tue, 31 Jan 2023 14:48:27 +0100 Subject: [PATCH] Include QLocale::system() in matchingLocales() return list QLocale::matchingLocales() only returns matches from the CLDR database, it does not include the current system locale as a match, even if it does match. Add the current system locale, if it matches. Task-number: QTBUG-106644 Change-Id: If2e409bf0fd8582941646838330e36b79952d3f6 Reviewed-by: Thiago Macieira Reviewed-by: Edward Welbourne --- src/corelib/text/qlocale.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/corelib/text/qlocale.cpp b/src/corelib/text/qlocale.cpp index efd6003d42..7392c50d50 100644 --- a/src/corelib/text/qlocale.cpp +++ b/src/corelib/text/qlocale.cpp @@ -2748,6 +2748,15 @@ QList QLocale::matchingLocales(QLocale::Language language, QLocale::Scr ++index; } + // Add current system locale, if it matches + const auto syslocaledata = systemData(); + + if (filter.acceptLanguage(syslocaledata->m_language_id)) { + const QLocaleId id = syslocaledata->id(); + if (filter.acceptScriptTerritory(id)) + result.append(QLocale::system()); + } + return result; }