diff options
author | Denis Dzyubenko <denis.dzyubenko@nokia.com> | 2011-03-17 16:48:28 (GMT) |
---|---|---|
committer | Denis Dzyubenko <denis.dzyubenko@nokia.com> | 2011-03-17 16:48:28 (GMT) |
commit | 08d5655d4ac291f97d164c96ecfe0a0d7e4ba654 (patch) | |
tree | 9ea65423fcb04e6f33d12a46582a730a4d1358fe /src/corelib/tools/qlocale.cpp | |
parent | 903a52cd764ba4ace6c4d2d3b692f5b563fb326c (diff) | |
parent | a70f9f5908f2db187e6818103d9599e1e45c130d (diff) | |
download | Qt-08d5655d4ac291f97d164c96ecfe0a0d7e4ba654.zip Qt-08d5655d4ac291f97d164c96ecfe0a0d7e4ba654.tar.gz Qt-08d5655d4ac291f97d164c96ecfe0a0d7e4ba654.tar.bz2 |
Merge branch 'master-i18n' of scm.dev.nokia.troll.no:qt/qt-earth-team into master-i18n
Conflicts:
src/corelib/tools/qlocale.h
Diffstat (limited to 'src/corelib/tools/qlocale.cpp')
-rw-r--r-- | src/corelib/tools/qlocale.cpp | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/src/corelib/tools/qlocale.cpp b/src/corelib/tools/qlocale.cpp index 31cf85b..3f250ec 100644 --- a/src/corelib/tools/qlocale.cpp +++ b/src/corelib/tools/qlocale.cpp @@ -823,6 +823,45 @@ QString QLocale::quoteString(const QStringRef &str, QuotationStyle style) const } /*! + \since 4.8 + + Returns a string according to the current locale. +*/ +QString QLocale::createSeparatedList(const QStringList &strl) const +{ +#ifndef QT_NO_SYSTEMLOCALE + if (d() == systemPrivate()) { + QVariant res; + res = systemLocale()->query(QSystemLocale::ListToSeparatedString, QVariant::fromValue(strl)); + + if (!res.isNull()) + return res.toString(); + } +#endif + + const int size = strl.size(); + if (size == 1) + return strl.at(0); + else if (size == 2) { + QString format = getLocaleData(list_pattern_part_data + d()->m_list_pattern_part_two_idx, d()->m_list_pattern_part_two_size); + return format.arg(strl.at(0), strl.at(1)); + } + else if (size > 2) { + QString formatStart = getLocaleData(list_pattern_part_data + d()->m_list_pattern_part_start_idx, d()->m_list_pattern_part_start_size); + QString formatMid = getLocaleData(list_pattern_part_data + d()->m_list_pattern_part_mid_idx, d()->m_list_pattern_part_mid_size); + QString formatEnd = getLocaleData(list_pattern_part_data + d()->m_list_pattern_part_end_idx, d()->m_list_pattern_part_end_size); + QString result = formatStart.arg(strl.at(0), strl.at(1)); + int i; + for (i = 2; i < size - 1; ++i) + result = formatMid.arg(result, strl.at(i)); + result = formatEnd.arg(result, strl.at(size - 1)); + return result; + } + + return QString(); +} + +/*! \nonreentrant Sets the global default locale to \a locale. These |