Update system collator when system local is default and updates
Amends commit 94de5f9b25 so that every
change to the default locale is reflected in an update to the default
collator used by QString::localeAwareCompare().
Although the change to the system locale does update the QLocaleData
object shared by all system locale objects, the possible change to its
collator() may imply the default collator needs an update; and the
collator backend's init() may use the language, script and territory
that's changed in setting up the revised collator, even if the QLocale
instance referenced has the same QLocaleData.
Pick-to: 6.6 6.5 6.2
Change-Id: I957486c03c3d779fc9a2f0b889346ec13b1af868
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
bb10
parent
ff75ace02d
commit
df736da245
|
|
@ -682,6 +682,7 @@ qsizetype qt_repeatCount(QStringView s)
|
|||
}
|
||||
|
||||
Q_CONSTINIT static const QLocaleData *default_data = nullptr;
|
||||
Q_CONSTINIT QBasicAtomicInt QLocalePrivate::s_generation = Q_BASIC_ATOMIC_INITIALIZER(0);
|
||||
|
||||
static QLocalePrivate *c_private()
|
||||
{
|
||||
|
|
@ -780,6 +781,10 @@ static void updateSystemPrivate()
|
|||
systemLocaleData.m_script_id = res.toInt();
|
||||
|
||||
// Should we replace Any values based on likely sub-tags ?
|
||||
|
||||
// If system locale is default locale, update the default collator's generation:
|
||||
if (default_data == &systemLocaleData)
|
||||
QLocalePrivate::s_generation.fetchAndAddRelaxed(1);
|
||||
}
|
||||
#endif // !QT_NO_SYSTEMLOCALE
|
||||
|
||||
|
|
@ -853,7 +858,6 @@ QDataStream &operator>>(QDataStream &ds, QLocale &l)
|
|||
|
||||
static constexpr qsizetype locale_data_size = q20::ssize(locale_data) - 1; // trailing guard
|
||||
|
||||
Q_CONSTINIT QBasicAtomicInt QLocalePrivate::s_generation = Q_BASIC_ATOMIC_INITIALIZER(0);
|
||||
Q_GLOBAL_STATIC(QSharedDataPointer<QLocalePrivate>, defaultLocalePrivate,
|
||||
new QLocalePrivate(defaultData(), defaultIndex()))
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue