diff options
-rw-r--r-- | demos/spectrum/app/spectrum.sh | 41 | ||||
-rw-r--r-- | src/corelib/kernel/qeventdispatcher_symbian.cpp | 4 | ||||
-rw-r--r-- | src/corelib/tools/qlocale.cpp | 1 | ||||
-rw-r--r-- | src/corelib/tools/qlocale_symbian.cpp | 120 | ||||
-rw-r--r-- | util/s60theme/main.cpp | 4 | ||||
-rw-r--r-- | util/s60theme/s60themeconvert.cpp | 25 |
6 files changed, 126 insertions, 69 deletions
diff --git a/demos/spectrum/app/spectrum.sh b/demos/spectrum/app/spectrum.sh index 75ad6c2..2a230ed 100644 --- a/demos/spectrum/app/spectrum.sh +++ b/demos/spectrum/app/spectrum.sh @@ -1,4 +1,45 @@ #!/bin/sh +############################################################################# +## +## Copyright (C) 2010 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:LGPL$ +## No Commercial Usage +## This file contains pre-release code and may not be distributed. +## You may use this file in accordance with the terms and conditions +## contained in the Technology Preview License Agreement accompanying +## this package. +## +## GNU Lesser General Public License Usage +## Alternatively, this file may be used under the terms of the GNU Lesser +## General Public License version 2.1 as published by the Free Software +## Foundation and appearing in the file LICENSE.LGPL included in the +## packaging of this file. Please review the following information to +## ensure the GNU Lesser General Public License version 2.1 requirements +## will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +## +## In addition, as a special exception, Nokia gives you certain additional +## rights. These rights are described in the Nokia Qt LGPL Exception +## version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +## +## If you have questions regarding the use of this file, please contact +## Nokia at qt-info@nokia.com. +## +## +## +## +## +## +## +## +## $QT_END_LICENSE$ +## +############################################################################# + # Shell script for launching spectrum application on Unix systems other than Mac OSX diff --git a/src/corelib/kernel/qeventdispatcher_symbian.cpp b/src/corelib/kernel/qeventdispatcher_symbian.cpp index 0f85a9e..d00a623 100644 --- a/src/corelib/kernel/qeventdispatcher_symbian.cpp +++ b/src/corelib/kernel/qeventdispatcher_symbian.cpp @@ -484,9 +484,9 @@ void QSelectThread::run() } // end for // traversed all, so update + updateActivatedNotifiers(QSocketNotifier::Exception, &exceptionfds); updateActivatedNotifiers(QSocketNotifier::Read, &readfds); updateActivatedNotifiers(QSocketNotifier::Write, &writefds); - updateActivatedNotifiers(QSocketNotifier::Exception, &exceptionfds); break; case EINTR: // Should never occur on Symbian, but this is future proof! @@ -496,9 +496,9 @@ void QSelectThread::run() break; } } else { + updateActivatedNotifiers(QSocketNotifier::Exception, &exceptionfds); updateActivatedNotifiers(QSocketNotifier::Read, &readfds); updateActivatedNotifiers(QSocketNotifier::Write, &writefds); - updateActivatedNotifiers(QSocketNotifier::Exception, &exceptionfds); } m_waitCond.wait(&m_mutex); diff --git a/src/corelib/tools/qlocale.cpp b/src/corelib/tools/qlocale.cpp index 8d79cb3..5925985 100644 --- a/src/corelib/tools/qlocale.cpp +++ b/src/corelib/tools/qlocale.cpp @@ -743,6 +743,7 @@ struct WindowsToISOListElt { char iso_name[6]; }; +/* NOTE: This array should be sorted by the first column! */ static const WindowsToISOListElt windows_to_iso_list[] = { { 0x0401, "ar_SA" }, { 0x0402, "bg\0 " }, diff --git a/src/corelib/tools/qlocale_symbian.cpp b/src/corelib/tools/qlocale_symbian.cpp index 2e5daec..806a142 100644 --- a/src/corelib/tools/qlocale_symbian.cpp +++ b/src/corelib/tools/qlocale_symbian.cpp @@ -87,71 +87,75 @@ struct symbianToISO { /* - Mapping from Symbian to ISO locale + Mapping from Symbian to ISO locale. + NOTE: This array should be sorted by the first column! */ static const symbianToISO symbian_to_iso_list[] = { - { ELangEnglish, "en_GB" }, - { ELangFrench, "fr_FR" }, - { ELangGerman, "de_DE" }, - { ELangSpanish, "es_ES" }, - { ELangItalian, "it_IT" }, - { ELangSwedish, "sv_SE" }, - { ELangDanish, "da_DK" }, - { ELangNorwegian, "no_NO" }, - { ELangFinnish, "fi_FI" }, - { ELangAmerican, "en_US" }, - { ELangPortuguese, "pt_PT" }, - { ELangTurkish, "tr_TR" }, - { ELangIcelandic, "is_IS" }, - { ELangRussian, "ru_RU" }, - { ELangHungarian, "hu_HU" }, - { ELangDutch, "nl_NL" }, - { ELangBelgianFlemish, "nl_BE" }, - { ELangCzech, "cs_CZ" }, - { ELangSlovak, "sk_SK" }, - { ELangPolish, "pl_PL" }, - { ELangSlovenian, "sl_SI" }, - { ELangTaiwanChinese, "zh_TW" }, - { ELangHongKongChinese, "zh_HK" }, - { ELangPrcChinese, "zh_CN" }, - { ELangJapanese, "ja_JP" }, - { ELangThai, "th_TH" }, - { ELangArabic, "ar_AE" }, - { ELangTagalog, "tl_PH" }, - { ELangBulgarian, "bg_BG" }, - { ELangCatalan, "ca_ES" }, - { ELangCroatian, "hr_HR" }, - { ELangEstonian, "et_EE" }, - { ELangFarsi, "fa_IR" }, - { ELangCanadianFrench, "fr_CA" }, - { ELangGreek, "el_GR" }, - { ELangHebrew, "he_IL" }, - { ELangHindi, "hi_IN" }, - { ELangIndonesian, "id_ID" }, - { ELangLatvian, "lv_LV" }, - { ELangLithuanian, "lt_LT" }, - { ELangMalay, "ms_MY" }, - { ELangBrazilianPortuguese, "pt_BR" }, - { ELangRomanian, "ro_RO" }, - { ELangSerbian, "sr_YU" }, - { ELangLatinAmericanSpanish,"es_MX" }, // TODO: should be es_419 - { ELangUkrainian, "uk_UA" }, - { ELangUrdu, "ur_PK" }, // India/Pakistan - { ELangVietnamese, "vi_VN" }, + { ELangEnglish, "en_GB" }, // 1 + { ELangFrench, "fr_FR" }, // 2 + { ELangGerman, "de_DE" }, // 3 + { ELangSpanish, "es_ES" }, // 4 + { ELangItalian, "it_IT" }, // 5 + { ELangSwedish, "sv_SE" }, // 6 + { ELangDanish, "da_DK" }, // 7 + { ELangNorwegian, "no_NO" }, // 8 + { ELangFinnish, "fi_FI" }, // 9 + { ELangAmerican, "en_US" }, // 10 + { ELangPortuguese, "pt_PT" }, // 13 + { ELangTurkish, "tr_TR" }, // 14 + { ELangIcelandic, "is_IS" }, // 15 + { ELangRussian, "ru_RU" }, // 16 + { ELangHungarian, "hu_HU" }, // 17 + { ELangDutch, "nl_NL" }, // 18 + { ELangBelgianFlemish, "nl_BE" }, // 19 + { ELangCzech, "cs_CZ" }, // 25 + { ELangSlovak, "sk_SK" }, // 26 + { ELangPolish, "pl_PL" }, // 27 + { ELangSlovenian, "sl_SI" }, // 28 + { ELangTaiwanChinese, "zh_TW" }, // 29 + { ELangHongKongChinese, "zh_HK" }, // 30 + { ELangPrcChinese, "zh_CN" }, // 31 + { ELangJapanese, "ja_JP" }, // 32 + { ELangThai, "th_TH" }, // 33 + { ELangArabic, "ar_AE" }, // 37 + { ELangTagalog, "tl_PH" }, // 39 + { ELangBulgarian, "bg_BG" }, // 42 + { ELangCatalan, "ca_ES" }, // 44 + { ELangCroatian, "hr_HR" }, // 45 + { ELangEstonian, "et_EE" }, // 49 + { ELangFarsi, "fa_IR" }, // 50 + { ELangCanadianFrench, "fr_CA" }, // 51 + { ELangGreek, "el_GR" }, // 54 + { ELangHebrew, "he_IL" }, // 57 + { ELangHindi, "hi_IN" }, // 58 + { ELangIndonesian, "id_ID" }, // 59 + { ELangKorean, "ko_KO" }, // 65 + { ELangLatvian, "lv_LV" }, // 67 + { ELangLithuanian, "lt_LT" }, // 68 + { ELangMalay, "ms_MY" }, // 70 + { ELangNorwegianNynorsk, "nn_NO" }, // 75 + { ELangBrazilianPortuguese, "pt_BR" }, // 76 + { ELangRomanian, "ro_RO" }, // 78 + { ELangSerbian, "sr_RS" }, // 79 + { ELangLatinAmericanSpanish,"es_419" }, // 83 + { ELangUkrainian, "uk_UA" }, // 93 + { ELangUrdu, "ur_PK" }, // 94 - India/Pakistan + { ELangVietnamese, "vi_VN" }, // 96 #ifdef __E32LANG_H__ // 5.0 - { ELangBasque, "eu_ES" }, - { ELangGalician, "gl_ES" }, + { ELangBasque, "eu_ES" }, // 102 + { ELangGalician, "gl_ES" }, // 103 #endif #if !defined(__SERIES60_31__) - { ELangEnglish_Apac, "en" }, - { ELangEnglish_Taiwan, "en_TW" }, - { ELangEnglish_HongKong, "en_HK" }, - { ELangEnglish_Prc, "en_CN" }, - { ELangEnglish_Japan, "en_JP"}, - { ELangEnglish_Thailand, "en_TH" }, - { ELangMalay_Apac, "ms" } + { ELangEnglish_Apac, "en" }, // 129 + { ELangEnglish_Taiwan, "en_TW" }, // 157 ### Not supported by CLDR + { ELangEnglish_HongKong, "en_HK" }, // 158 + { ELangEnglish_Prc, "en_CN" }, // 159 ### Not supported by CLDR + { ELangEnglish_Japan, "en_JP"}, // 160 ### Not supported by CLDR + { ELangEnglish_Thailand, "en_TH" }, // 161 ### Not supported by CLDR + { ELangMalay_Apac, "ms" }, // 326 #endif + { 327/*ELangIndonesian_Apac*/,"id_ID" } // 327 - appeared in Symbian^3 }; /*! diff --git a/util/s60theme/main.cpp b/util/s60theme/main.cpp index 7f38d5c..1234fd2 100644 --- a/util/s60theme/main.cpp +++ b/util/s60theme/main.cpp @@ -70,9 +70,9 @@ int main(int argc, char *argv[]) const QFileInfo inputInfo(input); const QString output = QString::fromLatin1(argv[2]); if (inputInfo.isDir()) - return S60ThemeConvert::convertDefaultThemeToBlob(input, output); + return S60ThemeConvert::convertDefaultThemeToBlob(input, output) ? 0 : 1; else if (inputInfo.suffix().compare(QString::fromLatin1("tdf"), Qt::CaseInsensitive) == 0) - return S60ThemeConvert::convertTdfToBlob(input, output); + return S60ThemeConvert::convertTdfToBlob(input, output) ? 0 : 1; return help(); } diff --git a/util/s60theme/s60themeconvert.cpp b/util/s60theme/s60themeconvert.cpp index 7908055..b1e8022 100644 --- a/util/s60theme/s60themeconvert.cpp +++ b/util/s60theme/s60themeconvert.cpp @@ -45,6 +45,8 @@ #include <QtWebKit> static const int pictureSize = 256; +static const char* const msgPartNotInTdf = " Warning: The .tdf file does not have a part for "; +static const char* const msgSvgNotFound = " Fatal: Could not find part .svg "; void dumpPartPictures(const QHash<QString, QPicture> &partPictures) { foreach (const QString &partKey, partPictures.keys()) { @@ -84,6 +86,7 @@ private: WebKitSVGRenderer::WebKitSVGRenderer(QWidget *parent) : QWebView(parent) { + connect(this, SIGNAL(loadFinished(bool)), SLOT(loadFinishedSlot(bool))); setFixedSize(pictureSize, pictureSize); QPalette pal = palette(); @@ -202,11 +205,19 @@ bool loadThemeFromTdf(const QString &tdfFile, return false; const QString tdfBasePath = QFileInfo(tdfFile).absolutePath(); WebKitSVGRenderer renderer; - foreach(const QString& partKey, parsedPartSvgs.keys()) { - const QString tdfFullName = - tdfBasePath + QDir::separator() + parsedPartSvgs.value(partKey); - if (!QFile(tdfFullName).exists()) - qWarning() << "Could not find part:" << parsedPartSvgs.value(partKey); + foreach (const QString &partKey, QS60Style::partKeys()) { + qDebug() << partKey; + QString tdfFullName; + if (parsedPartSvgs.contains(partKey)) { + tdfFullName = tdfBasePath + QDir::separator() + parsedPartSvgs.value(partKey); + } else { + qWarning() << msgPartNotInTdf << partKey; + tdfFullName = tdfBasePath + QDir::separator() + partKey + QLatin1String(".svg"); + } + if (!QFile(tdfFullName).exists()) { + qWarning() << msgSvgNotFound << QDir::toNativeSeparators(tdfFullName); + return false; + } const QPicture partPicture = renderer.svgToQPicture(tdfFullName); parsedPartPictures.insert(partKey, partPicture); } @@ -276,8 +287,8 @@ bool loadDefaultTheme(const QString &themePath, const QString partFileName = partKey + QLatin1String(".svg"); const QString partFile(dir.absolutePath() + QDir::separator() + partFileName); if (!QFile::exists(partFile)) { - qWarning() << "Could not find part:" << partFileName; - continue; + qWarning() << msgSvgNotFound << partFileName; + return false; } const QPicture partPicture = renderer.svgToQPicture(partFile); partPictures.insert(partKey, partPicture); |