diff options
Diffstat (limited to 'src/corelib/tools/qcollator_macx.cpp')
-rw-r--r-- | src/corelib/tools/qcollator_macx.cpp | 46 |
1 files changed, 16 insertions, 30 deletions
diff --git a/src/corelib/tools/qcollator_macx.cpp b/src/corelib/tools/qcollator_macx.cpp index 42e67e0c12..071d7c048f 100644 --- a/src/corelib/tools/qcollator_macx.cpp +++ b/src/corelib/tools/qcollator_macx.cpp @@ -65,12 +65,12 @@ void QCollatorPrivate::init() return; LocaleRef localeRef; - int rc = LocaleRefFromLocaleString(QLocalePrivate::get(locale)->bcp47Name().constData(), &localeRef); - if (rc != 0) - qWarning("couldn't initialize the locale"); + OSStatus status = + LocaleRefFromLocaleString(QLocalePrivate::get(locale)->bcp47Name().constData(), &localeRef); + if (status != 0) + qWarning("Couldn't initialize the locale (%d)", int(status)); UInt32 options = 0; - if (caseSensitivity == Qt::CaseInsensitive) options |= kUCCollateCaseInsensitiveMask; if (numericMode) @@ -78,14 +78,9 @@ void QCollatorPrivate::init() if (!ignorePunctuation) options |= kUCCollatePunctuationSignificantMask; - OSStatus status = UCCreateCollator( - localeRef, - 0, - options, - &collator - ); + status = UCCreateCollator(localeRef, 0, options, &collator); if (status != 0) - qWarning("Couldn't initialize the collator"); + qWarning("Couldn't initialize the collator (%d)", int(status)); dirty = false; } @@ -97,18 +92,18 @@ void QCollatorPrivate::cleanup() collator = 0; } -int QCollator::compare(const QChar *s1, int len1, const QChar *s2, int len2) const +int QCollator::compare(QStringView s1, QStringView s2) const { if (d->dirty) d->init(); if (!d->collator) - return QStringView(s1, len1).compare(QStringView(s2, len2), caseSensitivity()); + return s1.compare(s2, caseSensitivity()); SInt32 result; Boolean equivalent; UCCompareText(d->collator, - reinterpret_cast<const UniChar *>(s1), len1, - reinterpret_cast<const UniChar *>(s2), len2, + reinterpret_cast<const UniChar *>(s1.data()), s1.size(), + reinterpret_cast<const UniChar *>(s2.data()), s2.size(), &equivalent, &result); if (equivalent) @@ -116,16 +111,6 @@ int QCollator::compare(const QChar *s1, int len1, const QChar *s2, int len2) con return result < 0 ? -1 : 1; } -int QCollator::compare(const QString &str1, const QString &str2) const -{ - return compare(str1.constData(), str1.size(), str2.constData(), str2.size()); -} - -int QCollator::compare(const QStringRef &s1, const QStringRef &s2) const -{ - return compare(s1.constData(), s1.size(), s2.constData(), s2.size()); -} - QCollatorSortKey QCollator::sortKey(const QString &string) const { if (d->dirty) @@ -139,13 +124,14 @@ QCollatorSortKey QCollator::sortKey(const QString &string) const //Documentation recommends having it 5 times as big as the input QVector<UCCollationValue> ret(string.size() * 5); ItemCount actualSize; - int status = UCGetCollationKey(d->collator, reinterpret_cast<const UniChar *>(string.constData()), string.count(), - ret.size(), &actualSize, ret.data()); + int status = UCGetCollationKey(d->collator, + reinterpret_cast<const UniChar *>(string.constData()), + string.count(), ret.size(), &actualSize, ret.data()); - ret.resize(actualSize+1); + ret.resize(actualSize + 1); if (status == kUCOutputBufferTooSmall) { - UCGetCollationKey(d->collator, reinterpret_cast<const UniChar *>(string.constData()), string.count(), - ret.size(), &actualSize, ret.data()); + UCGetCollationKey(d->collator, reinterpret_cast<const UniChar *>(string.constData()), + string.count(), ret.size(), &actualSize, ret.data()); } ret[actualSize] = 0; return QCollatorSortKey(new QCollatorSortKeyPrivate(std::move(ret))); |