diff options
author | Edward Welbourne <edward.welbourne@qt.io> | 2018-10-02 17:25:17 +0200 |
---|---|---|
committer | Edward Welbourne <edward.welbourne@qt.io> | 2019-04-10 13:31:07 +0000 |
commit | 235ac95520a0fc2c822dedce7358e3c64a764255 (patch) | |
tree | 5619dd0db97ddc8ae6b1fc6d6b20924d1f51e0a7 /src/corelib/tools/qcollator.cpp | |
parent | a20da2353cc308aab15e3efa05ab7d899e9c6ca7 (diff) |
Improve the default selection of locale for QCollator
QCollator was using the default-constructed QLocale() as its default;
this locale's default was the system locale; however, that didn't pay
any attention to system settings for collation such as Unix's
environment variable LC_COLLATE or the MS-Win LOCALE_SSORTLOCALE
configuration option.
Teach the system locale back-ends to look up their relevant settings,
add QLocale::collation() as a channel via which to access that and
change no-parameter construction of QCollator to a separate
implementation (rather than the constructor taking QLocale having a
default) using it.
[ChangeLog][QtCore][QLocale] The system locale now knows what to use
for collation, QLocale::system().collation().
[ChangeLog][QtCore][QCollator] The default QCollator now uses the
system's collation locale, rather than the system locale itself.
Fixes: QTBUG-58621
Change-Id: I90f86621541385330315d1f9d6a4b982bdcea9d5
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/corelib/tools/qcollator.cpp')
-rw-r--r-- | src/corelib/tools/qcollator.cpp | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/src/corelib/tools/qcollator.cpp b/src/corelib/tools/qcollator.cpp index d73eb0d07c..6e85027462 100644 --- a/src/corelib/tools/qcollator.cpp +++ b/src/corelib/tools/qcollator.cpp @@ -46,7 +46,6 @@ QT_BEGIN_NAMESPACE - /*! \class QCollator \inmodule QtCore @@ -71,9 +70,20 @@ QT_BEGIN_NAMESPACE */ /*! - Constructs a QCollator for \a locale. + \since 5.13 + + Constructs a QCollator using the system's default collation locale. - If \a locale is not specified, the system's default locale is used. + \sa setLocale(), QLocale::collation() +*/ +QCollator::QCollator() + : d(new QCollatorPrivate(QLocale::system().collation())) +{ + d->init(); +} + +/*! + Constructs a QCollator from \a locale. \sa setLocale() */ |