summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDominik Riebeling <Dominik.Riebeling@gmail.com>2011-02-04 23:28:34 +0000
committerDominik Riebeling <Dominik.Riebeling@gmail.com>2011-02-04 23:28:34 +0000
commit988b3083df91d88848ec637664e2d8b9ed26a489 (patch)
tree07186d46e09da918d246ecbe2d86f3e49440f9e5
parent3419422c239758fc6002e56e6be3c034bc8dbe8e (diff)
downloadrockbox-988b3083df91d88848ec637664e2d8b9ed26a489.tar.gz
rockbox-988b3083df91d88848ec637664e2d8b9ed26a489.zip
Replace list of languages with map.
- Use ISO codes as keys for voice languages instead of enumeration. - Instead of trying to select a suitable voicefile language from the UI language use the ISO codes stored as UI language and match against the mapping. - Always store the selected UI language. Fixes the voicefile creation language lookup to fail if the language used is the system language. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29207 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--rbutil/rbutilqt/base/systeminfo.cpp6
-rw-r--r--rbutil/rbutilqt/base/systeminfo.h8
-rw-r--r--rbutil/rbutilqt/base/ttssapi.cpp5
-rw-r--r--rbutil/rbutilqt/configure.cpp5
-rw-r--r--rbutil/rbutilqt/createvoicewindow.cpp16
-rw-r--r--rbutil/rbutilqt/rbutil.ini76
6 files changed, 60 insertions, 56 deletions
diff --git a/rbutil/rbutilqt/base/systeminfo.cpp b/rbutil/rbutilqt/base/systeminfo.cpp
index b493168699..4a9c471951 100644
--- a/rbutil/rbutilqt/base/systeminfo.cpp
+++ b/rbutil/rbutilqt/base/systeminfo.cpp
@@ -143,16 +143,16 @@ QStringList SystemInfo::platforms(enum SystemInfo::PlatformType type, QString va
143 return result; 143 return result;
144} 144}
145 145
146QStringList SystemInfo::languages() 146QMap<QString, QString> SystemInfo::languages(void)
147{ 147{
148 ensureSystemInfoExists(); 148 ensureSystemInfoExists();
149 149
150 QStringList result; 150 QMap<QString, QString> result;
151 systemInfos->beginGroup("languages"); 151 systemInfos->beginGroup("languages");
152 QStringList a = systemInfos->childKeys(); 152 QStringList a = systemInfos->childKeys();
153 for(int i = 0; i < a.size(); i++) 153 for(int i = 0; i < a.size(); i++)
154 { 154 {
155 result.append(systemInfos->value(a.at(i), "null").toString()); 155 result.insert(a.at(i), systemInfos->value(a.at(i), "null").toString());
156 } 156 }
157 systemInfos->endGroup(); 157 systemInfos->endGroup();
158 return result; 158 return result;
diff --git a/rbutil/rbutilqt/base/systeminfo.h b/rbutil/rbutilqt/base/systeminfo.h
index 214e423a51..f5e0eae6ef 100644
--- a/rbutil/rbutilqt/base/systeminfo.h
+++ b/rbutil/rbutilqt/base/systeminfo.h
@@ -34,7 +34,7 @@ class SystemInfo : public QObject
34 MapError, 34 MapError,
35 MapIncompatible, 35 MapIncompatible,
36 }; 36 };
37 37
38 //! All system settings 38 //! All system settings
39 enum SystemInfos { 39 enum SystemInfos {
40 ManualUrl, 40 ManualUrl,
@@ -78,14 +78,14 @@ class SystemInfo : public QObject
78 //! return a list of all platforms (rbutil internal names) 78 //! return a list of all platforms (rbutil internal names)
79 static QStringList platforms(enum PlatformType type = PlatformAll, 79 static QStringList platforms(enum PlatformType type = PlatformAll,
80 QString variant=""); 80 QString variant="");
81 //! returns a list of all languages 81 //! returns a map of all languages
82 static QStringList languages(void); 82 static QMap<QString, QString> languages(void);
83 //! returns a map of usb-ids and their targets 83 //! returns a map of usb-ids and their targets
84 static QMap<int, QString> usbIdMap(enum MapType); 84 static QMap<int, QString> usbIdMap(enum MapType);
85 //! get a value from system settings 85 //! get a value from system settings
86 static QVariant value(enum SystemInfos info); 86 static QVariant value(enum SystemInfos info);
87 //! get a value from system settings for a named platform. 87 //! get a value from system settings for a named platform.
88 static QVariant platformValue(QString platform, enum SystemInfos info); 88 static QVariant platformValue(QString platform, enum SystemInfos info);
89 89
90 private: 90 private:
91 //! you shouldnt call this, its a fully static calls 91 //! you shouldnt call this, its a fully static calls
diff --git a/rbutil/rbutilqt/base/ttssapi.cpp b/rbutil/rbutilqt/base/ttssapi.cpp
index b149e1d786..2cc95cd4aa 100644
--- a/rbutil/rbutilqt/base/ttssapi.cpp
+++ b/rbutil/rbutilqt/base/ttssapi.cpp
@@ -38,11 +38,10 @@ TTSBase::Capabilities TTSSapi::capabilities()
38void TTSSapi::generateSettings() 38void TTSSapi::generateSettings()
39{ 39{
40 // language 40 // language
41 QStringList languages = SystemInfo::languages(); 41 QMap<QString, QString> languages = SystemInfo::languages();
42 languages.sort();
43 EncTtsSetting* setting =new EncTtsSetting(this,EncTtsSetting::eSTRINGLIST, 42 EncTtsSetting* setting =new EncTtsSetting(this,EncTtsSetting::eSTRINGLIST,
44 tr("Language:"),RbSettings::subValue("sapi",RbSettings::TtsLanguage), 43 tr("Language:"),RbSettings::subValue("sapi",RbSettings::TtsLanguage),
45 languages); 44 languages.values());
46 connect(setting,SIGNAL(dataChanged()),this,SLOT(updateVoiceList())); 45 connect(setting,SIGNAL(dataChanged()),this,SLOT(updateVoiceList()));
47 insertSetting(eLANGUAGE,setting); 46 insertSetting(eLANGUAGE,setting);
48 // voice 47 // voice
diff --git a/rbutil/rbutilqt/configure.cpp b/rbutil/rbutilqt/configure.cpp
index 7ed74f1b9e..e5ea699257 100644
--- a/rbutil/rbutilqt/configure.cpp
+++ b/rbutil/rbutilqt/configure.cpp
@@ -131,9 +131,10 @@ void Config::accept()
131 if(RbSettings::value(RbSettings::Language).toString() != language 131 if(RbSettings::value(RbSettings::Language).toString() != language
132 && !language.isEmpty()) { 132 && !language.isEmpty()) {
133 QMessageBox::information(this, tr("Language changed"), 133 QMessageBox::information(this, tr("Language changed"),
134 tr("You need to restart the application for the changed language to take effect.")); 134 tr("You need to restart the application for the changed language "
135 RbSettings::setValue(RbSettings::Language, language); 135 "to take effect."));
136 } 136 }
137 RbSettings::setValue(RbSettings::Language, language);
137 138
138 // mountpoint 139 // mountpoint
139 QString mp = ui.mountPoint->text(); 140 QString mp = ui.mountPoint->text();
diff --git a/rbutil/rbutilqt/createvoicewindow.cpp b/rbutil/rbutilqt/createvoicewindow.cpp
index 7c2ff732c4..95df4b1b0c 100644
--- a/rbutil/rbutilqt/createvoicewindow.cpp
+++ b/rbutil/rbutilqt/createvoicewindow.cpp
@@ -71,24 +71,28 @@ void CreateVoiceWindow::accept()
71void CreateVoiceWindow::updateSettings(void) 71void CreateVoiceWindow::updateSettings(void)
72{ 72{
73 // fill in language combobox 73 // fill in language combobox
74 QStringList languages = SystemInfo::languages(); 74 QMap<QString, QString> languages = SystemInfo::languages();
75 languages.sort(); 75
76 ui.comboLanguage->addItems(languages); 76 for(int i = 0; i < languages.keys().size(); i++) {
77 QString key = languages.keys().at(i);
78 ui.comboLanguage->addItem(languages.value(key), key);
79 }
77 // set saved lang 80 // set saved lang
78 int sel = ui.comboLanguage->findText(RbSettings::value(RbSettings::VoiceLanguage).toString()); 81 int sel = ui.comboLanguage->findText(
82 RbSettings::value(RbSettings::VoiceLanguage).toString());
79 // if no saved language is found try to figure the language from the UI lang 83 // if no saved language is found try to figure the language from the UI lang
80 if(sel == -1) { 84 if(sel == -1) {
81 QString f = RbSettings::value(RbSettings::Language).toString(); 85 QString f = RbSettings::value(RbSettings::Language).toString();
82 // if no language is set default to english. Make sure not to check an empty string. 86 // if no language is set default to english. Make sure not to check an empty string.
83 if(f.isEmpty()) f = "english"; 87 if(f.isEmpty()) f = "english";
84 sel = ui.comboLanguage->findText(f, Qt::MatchStartsWith); 88 sel = ui.comboLanguage->findData(f);
85 qDebug() << "sel =" << sel; 89 qDebug() << "sel =" << sel;
86 // still nothing found? 90 // still nothing found?
87 if(sel == -1) 91 if(sel == -1)
88 sel = ui.comboLanguage->findText("english", Qt::MatchStartsWith); 92 sel = ui.comboLanguage->findText("english", Qt::MatchStartsWith);
89 } 93 }
90 ui.comboLanguage->setCurrentIndex(sel); 94 ui.comboLanguage->setCurrentIndex(sel);
91 95
92 QString ttsName = RbSettings::value(RbSettings::Tts).toString(); 96 QString ttsName = RbSettings::value(RbSettings::Tts).toString();
93 TTSBase* tts = TTSBase::getTTS(this,ttsName); 97 TTSBase* tts = TTSBase::getTTS(this,ttsName);
94 if(tts->configOk()) 98 if(tts->configOk())
diff --git a/rbutil/rbutilqt/rbutil.ini b/rbutil/rbutilqt/rbutil.ini
index 2eb429eaf7..7fa25deb7d 100644
--- a/rbutil/rbutilqt/rbutil.ini
+++ b/rbutil/rbutilqt/rbutil.ini
@@ -755,42 +755,42 @@ name="Sansa View"
755 755
756 756
757[languages] 757[languages]
758lang1=afrikaans 758af=afrikaans
759lang2=bulgarian 759bg=bulgarian
760lang3=catala 760ca=catala
761lang4=chinese-simp 761cs=czech
762lang5=chinese-trad 762da=dansk
763lang6=czech 763de=deutsch
764lang7=dansk 764el=greek
765lang8=deutsch 765en=english
766lang9=eesti 766eo=esperanto
767lang10=english 767es=espanol
768lang11=espanol 768et=eesti
769lang12=esperanto 769fi=finnish
770lang13=finnish 770fr=francais
771lang14=francais 771gl=galego
772lang15=galego 772he=hebrew
773lang16=greek 773hi=hindi
774lang17=hebrew 774hu=magyar
775lang18=islenska 775is=islenska
776lang19=italiano 776it=italiano
777lang20=japanese 777ja=japanese
778lang21=korean 778ko=korean
779lang22=magyar 779lt=lietuviu
780lang23=nederlands 780nb=norsk
781lang24=norsk 781nl=nederlands
782lang25=norsk-nynorsk 782nn=norsk-nynorsk
783lang26=polski 783pl=polski
784lang27=portugues 784pt=portugues
785lang28=portugues-brasileiro 785pt_BR=portugues-brasileiro
786lang29=romaneste 786ro=romaneste
787lang30=russian 787ru=russian
788lang31=slovenscina 788sk=slovenscina
789lang32=svenska 789sv=svenska
790lang33=thai 790th=thai
791lang34=turkce 791tl=tagalog
792lang35=wallisertitsch 792tr=turkce
793lang36=hindi 793wa=wallisertitsch
794lang37=tagalog 794zh_CN=chinese-simp
795lang38=lietuviu 795zh_TW=chinese-trad
796 796