summaryrefslogtreecommitdiffstats
path: root/src/corelib/tools/qlocale.cpp
diff options
context:
space:
mode:
authorDenis Dzyubenko <denis.dzyubenko@nokia.com>2011-03-17 16:48:28 (GMT)
committerDenis Dzyubenko <denis.dzyubenko@nokia.com>2011-03-17 16:48:28 (GMT)
commit08d5655d4ac291f97d164c96ecfe0a0d7e4ba654 (patch)
tree9ea65423fcb04e6f33d12a46582a730a4d1358fe /src/corelib/tools/qlocale.cpp
parent903a52cd764ba4ace6c4d2d3b692f5b563fb326c (diff)
parenta70f9f5908f2db187e6818103d9599e1e45c130d (diff)
downloadQt-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.cpp39
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