diff options
author | Denis Dzyubenko <denis.dzyubenko@nokia.com> | 2011-02-18 16:58:47 (GMT) |
---|---|---|
committer | Denis Dzyubenko <denis.dzyubenko@nokia.com> | 2011-02-23 14:16:49 (GMT) |
commit | 81fe6eac7530ad508bf54e7996cbdc9e2f0cb5d1 (patch) | |
tree | d7f2d2163f2bc1170d805da928728a1bfdf37d44 /tests | |
parent | 400195768909f52dee30abff59dd9a5e03ea63dc (diff) | |
download | Qt-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.cpp | 16 | ||||
-rw-r--r-- | tests/manual/qlocale/languages.cpp | 62 | ||||
-rw-r--r-- | tests/manual/qlocale/languages.h | 62 | ||||
-rw-r--r-- | tests/manual/qlocale/qlocale.pro | 4 | ||||
-rw-r--r-- | tests/manual/qlocale/window.cpp | 3 | ||||
-rw-r--r-- | tests/manual/qlocale/window.h | 2 |
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: |