summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorDenis Dzyubenko <denis.dzyubenko@nokia.com>2011-02-18 16:58:47 (GMT)
committerDenis Dzyubenko <denis.dzyubenko@nokia.com>2011-02-23 14:16:49 (GMT)
commit81fe6eac7530ad508bf54e7996cbdc9e2f0cb5d1 (patch)
treed7f2d2163f2bc1170d805da928728a1bfdf37d44 /tests
parent400195768909f52dee30abff59dd9a5e03ea63dc (diff)
downloadQt-81fe6eac7530ad508bf54e7996cbdc9e2f0cb5d1.zip
Qt-81fe6eac7530ad508bf54e7996cbdc9e2f0cb5d1.tar.gz
Qt-81fe6eac7530ad508bf54e7996cbdc9e2f0cb5d1.tar.bz2
Added UI languages property to QLocale
The return value is a sorted list of locale names that could be used for presenting data to the user (i.e. for translations). Task-number: QTBUG-7329 Reviewed-by: Zeno Albisser
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/qlocale/tst_qlocale.cpp16
-rw-r--r--tests/manual/qlocale/languages.cpp62
-rw-r--r--tests/manual/qlocale/languages.h62
-rw-r--r--tests/manual/qlocale/qlocale.pro4
-rw-r--r--tests/manual/qlocale/window.cpp3
-rw-r--r--tests/manual/qlocale/window.h2
6 files changed, 147 insertions, 2 deletions
diff --git a/tests/auto/qlocale/tst_qlocale.cpp b/tests/auto/qlocale/tst_qlocale.cpp
index 250aac9..878a31e 100644
--- a/tests/auto/qlocale/tst_qlocale.cpp
+++ b/tests/auto/qlocale/tst_qlocale.cpp
@@ -142,6 +142,7 @@ private slots:
void ampm();
void currency();
void quoteString();
+ void uiLanguages();
private:
QString m_decimal, m_thousand, m_sdate, m_ldate, m_time;
@@ -2169,5 +2170,20 @@ void tst_QLocale::quoteString()
}
+void tst_QLocale::uiLanguages()
+{
+ const QLocale c(QLocale::C);
+ QCOMPARE(c.uiLanguages().size(), 1);
+ QCOMPARE(c.uiLanguages().at(0), QLatin1String("C"));
+
+ const QLocale en_US("en_US");
+ QCOMPARE(en_US.uiLanguages().size(), 1);
+ QCOMPARE(en_US.uiLanguages().at(0), QLatin1String("en_US"));
+
+ const QLocale ru_RU("ru_RU");
+ QCOMPARE(ru_RU.uiLanguages().size(), 1);
+ QCOMPARE(ru_RU.uiLanguages().at(0), QLatin1String("ru_RU"));
+}
+
QTEST_APPLESS_MAIN(tst_QLocale)
#include "tst_qlocale.moc"
diff --git a/tests/manual/qlocale/languages.cpp b/tests/manual/qlocale/languages.cpp
new file mode 100644
index 0000000..65029c3
--- /dev/null
+++ b/tests/manual/qlocale/languages.cpp
@@ -0,0 +1,62 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "languages.h"
+
+LanguagesWidget::LanguagesWidget()
+{
+ QVBoxLayout *l = new QVBoxLayout(this);
+
+ languagesLabel = new QLabel("Preferred languages:");
+ languagesList = new QListWidget;
+
+ l->addWidget(languagesLabel);
+ l->addWidget(languagesList);
+
+ localeChanged(QLocale());
+}
+
+void LanguagesWidget::localeChanged(QLocale locale)
+{
+ languagesList->clear();
+ languagesList->addItems(locale.uiLanguages());
+}
+
+
diff --git a/tests/manual/qlocale/languages.h b/tests/manual/qlocale/languages.h
new file mode 100644
index 0000000..18e503f
--- /dev/null
+++ b/tests/manual/qlocale/languages.h
@@ -0,0 +1,62 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef LANGUAGES_H
+#define LANGUAGES_H
+
+#include <QtGui>
+
+class LanguagesWidget : public QWidget
+{
+ Q_OBJECT
+public:
+ LanguagesWidget();
+
+private:
+ QLocale currentLocale;
+
+ QLabel *languagesLabel;
+ QListWidget *languagesList;
+
+private slots:
+ void localeChanged(QLocale locale);
+};
+
+#endif
diff --git a/tests/manual/qlocale/qlocale.pro b/tests/manual/qlocale/qlocale.pro
index 66d527b..46eaa16 100644
--- a/tests/manual/qlocale/qlocale.pro
+++ b/tests/manual/qlocale/qlocale.pro
@@ -4,5 +4,5 @@ DEPENDPATH += .
INCLUDEPATH += .
# Input
-HEADERS += currency.h calendar.h window.h miscellaneous.h
-SOURCES += currency.cpp main.cpp calendar.cpp window.cpp miscellaneous.cpp
+HEADERS += currency.h calendar.h languages.h window.h miscellaneous.h
+SOURCES += currency.cpp main.cpp calendar.cpp languages.cpp window.cpp miscellaneous.cpp
diff --git a/tests/manual/qlocale/window.cpp b/tests/manual/qlocale/window.cpp
index caafcee..ebe5ea9 100644
--- a/tests/manual/qlocale/window.cpp
+++ b/tests/manual/qlocale/window.cpp
@@ -67,6 +67,8 @@ Window::Window()
connect(this, SIGNAL(localeChanged(QLocale)), calendar, SLOT(localeChanged(QLocale)));
currency = new CurrencyWidget;
connect(this, SIGNAL(localeChanged(QLocale)), currency, SLOT(localeChanged(QLocale)));
+ languages = new LanguagesWidget;
+ connect(this, SIGNAL(localeChanged(QLocale)), languages, SLOT(localeChanged(QLocale)));
miscellaneous = new MiscWidget;
connect(this, SIGNAL(localeChanged(QLocale)), miscellaneous, SLOT(localeChanged(QLocale)));
@@ -83,6 +85,7 @@ Window::Window()
tabWidget->addTab(calendar, "Calendar");
tabWidget->addTab(currency, "Currency");
+ tabWidget->addTab(languages, "Languages");
tabWidget->addTab(miscellaneous, "Misc");
localeCombo->setCurrentIndex(0);
systemLocaleChanged();
diff --git a/tests/manual/qlocale/window.h b/tests/manual/qlocale/window.h
index c9a5480..35719ae 100644
--- a/tests/manual/qlocale/window.h
+++ b/tests/manual/qlocale/window.h
@@ -45,6 +45,7 @@
#include "calendar.h"
#include "currency.h"
+#include "languages.h"
#include "miscellaneous.h"
class Window : public QWidget
@@ -58,6 +59,7 @@ public:
QTabWidget *tabWidget;
CalendarWidget *calendar;
CurrencyWidget *currency;
+ LanguagesWidget *languages;
MiscWidget *miscellaneous;
private: