QT_BEGIN_NAMESPACE void QCollatorPrivate::init() { cleanup(); LocaleRef localeRef; int rc = LocaleRefFromLocaleString(locale.bcp47Name().toLocal8Bit(), &localeRef); if (rc != 0) qWarning() << "couldn't initialize the locale"; UInt32 options = 0; if (caseSensitivity == Qt::CaseInsensitive) options |= kUCCollateCaseInsensitiveMask; if (numericMode) options |= kUCCollateDigitsAsNumberMask | kUCCollateDigitsOverrideMask; if (ignorePunctuation) options |= kUCCollatePunctuationSignificantMask; OSStatus status = UCCreateCollator( localeRef, 0, options, &collator ); if (status != 0) qWarning() << "Couldn't initialize the collator"; dirty = false; }
// --------------------------------------------------------------------------- // MacOSUnicodeConverter: Constructors and Destructor // --------------------------------------------------------------------------- MacOSUnicodeConverter::MacOSUnicodeConverter(MemoryManager* manager) : fCollator(NULL) { // Test for presense of unicode collation functions fHasUnicodeCollation = (UCCompareText != NULL); // Create a unicode collator for doing string comparisons if (fHasUnicodeCollation) { // Configure collation options UCCollateOptions collateOptions = kUCCollateComposeInsensitiveMask | kUCCollateWidthInsensitiveMask | kUCCollateCaseInsensitiveMask | kUCCollatePunctuationSignificantMask ; OSStatus status = UCCreateCollator(NULL, 0, collateOptions, &fCollator); } }