UObject* ICULocaleService::get(const Locale& locale, int32_t kind, Locale* actualReturn, UErrorCode& status) const { UObject* result = NULL; if (U_FAILURE(status)) { return result; } UnicodeString locName(locale.getName(), -1, US_INV); if (locName.isBogus()) { status = U_MEMORY_ALLOCATION_ERROR; } else { ICUServiceKey* key = createKey(&locName, kind, status); if (key) { if (actualReturn == NULL) { result = getKey(*key, status); } else { UnicodeString temp; result = getKey(*key, &temp, status); if (result != NULL) { key->parseSuffix(temp); LocaleUtility::initLocaleFromName(temp, *actualReturn); } } delete key; } } return result; }
EXPORT_C QString localizedDirectoryName(QString& rawPath) { QString ret; std::exception dummy; // voodoo fix for "Undefined symbol typeinfo for std::exception" in armv5 build TRAPD(err, QT_TRYCATCH_LEAVING( CDirectoryLocalizer* localizer = CDirectoryLocalizer::NewL(); CleanupStack::PushL(localizer); localizer->SetFullPath(qt_QString2TPtrC(QDir::toNativeSeparators(rawPath))); if(localizer->IsLocalized()){ TPtrC locName(localizer->LocalizedName()); ret = qt_TDesC2QString(locName); } CleanupStack::PopAndDestroy(localizer); ) ) if (err != KErrNone)
QString QDesktopServices::displayName(StandardLocation type) { QString ret; #ifdef Q_WS_S60 QString rawPath = storageLocation(type); TRAPD(err, QT_TRYCATCH_LEAVING( CDirectoryLocalizer* localizer = CDirectoryLocalizer::NewL(); CleanupStack::PushL(localizer); localizer->SetFullPath(qt_QString2TPtrC(QDir::toNativeSeparators(rawPath))); if (localizer->IsLocalized()) { TPtrC locName(localizer->LocalizedName()); ret = qt_TDesC2QString(locName); } CleanupStack::PopAndDestroy(localizer); ) ) if (err != KErrNone)