Show nicer language names in voice creation dialog.

Instead of showing the internal language names show some more human friendly
string. Currently only applies to the voice creation dialog, the language
configuration dialog needs further adjustments to support display strings
differing from values.

Change-Id: Ic94838f1079c1d09a666d7dbd9682c577f686b3f
This commit is contained in:
Dominik Riebeling 2012-05-19 16:49:48 +02:00
parent 9f89ffa71c
commit 733eb9af40
5 changed files with 65 additions and 59 deletions

View file

@ -52,7 +52,7 @@ void CreateVoiceWindow::accept()
//configure voicecreator
voicecreator->setMountPoint(RbSettings::value(RbSettings::Mountpoint).toString());
voicecreator->setLang(ui.comboLanguage->currentText());
voicecreator->setLang(ui.comboLanguage->itemData(ui.comboLanguage->currentIndex()).toString());
voicecreator->setWavtrimThreshold(ui.wavtrimthreshold->value());
//start creating
@ -69,25 +69,25 @@ void CreateVoiceWindow::accept()
void CreateVoiceWindow::updateSettings(void)
{
// fill in language combobox
QMap<QString, QString> languages = SystemInfo::languages();
QMap<QString, QStringList> languages = SystemInfo::languages();
for(int i = 0; i < languages.keys().size(); i++) {
QString key = languages.keys().at(i);
ui.comboLanguage->addItem(languages.value(key), key);
ui.comboLanguage->addItem(languages.value(key).at(1), languages.value(key).at(0));
}
// set saved lang
int sel = ui.comboLanguage->findText(
int sel = ui.comboLanguage->findData(
RbSettings::value(RbSettings::VoiceLanguage).toString());
// if no saved language is found try to figure the language from the UI lang
if(sel == -1) {
QString f = RbSettings::value(RbSettings::Language).toString();
QString uilang = RbSettings::value(RbSettings::Language).toString();
// if no language is set default to english. Make sure not to check an empty string.
if(f.isEmpty()) f = "english";
QString f = "english";
if(!uilang.isEmpty() && languages.contains(uilang)) {
f = languages.value(uilang).at(0);
}
sel = ui.comboLanguage->findData(f);
qDebug() << "sel =" << sel;
// still nothing found?
if(sel == -1)
sel = ui.comboLanguage->findText("english", Qt::MatchStartsWith);
qDebug() << "[CreateVoiceWindow] Selected language index:" << sel;
}
ui.comboLanguage->setCurrentIndex(sel);
@ -125,7 +125,7 @@ void CreateVoiceWindow::saveSettings(void)
{
// save selected language
RbSettings::setValue(RbSettings::VoiceLanguage,
ui.comboLanguage->currentText());
ui.comboLanguage->itemData(ui.comboLanguage->currentIndex()).toString());
// save wavtrim threshold value
RbSettings::setValue(RbSettings::WavtrimThreshold,
ui.wavtrimthreshold->value());