1
0
Fork 0
forked from len0rd/rockbox

Don't segfault upon opening the voice / talk creation window if the encoder setting is missing. This could happen if the configuration file is older and the user didn't re-save the settings.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16202 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Dominik Riebeling 2008-02-02 21:34:39 +00:00
parent 51f6fb56f1
commit 91a503b23e
2 changed files with 24 additions and 12 deletions

View file

@ -87,15 +87,20 @@ void CreateVoiceWindow::setSettings(RbSettings* sett)
ui.labelTtsProfile->setText(tr("Selected TTS Engine: <b>%1</b>").arg("Invalid TTS configuration!")); ui.labelTtsProfile->setText(tr("Selected TTS Engine: <b>%1</b>").arg("Invalid TTS configuration!"));
QString encoder = settings->curEncoder(); QString encoder = settings->curEncoder();
EncBase* enc = getEncoder(encoder); // only proceed if encoder setting is set
enc->setCfg(settings); if(!encoder.isEmpty()) {
if(enc->configOk()) // FIXME: getEncoder CAN return a NULL pointer. Additional error
ui.labelEncProfile->setText(tr("Selected Encoder: <b>%1</b>").arg(encoder)); // checking is required or getEncoder should use the default engine
EncBase* enc = getEncoder(encoder);
enc->setCfg(settings);
if(enc->configOk())
ui.labelEncProfile->setText(tr("Selected Encoder: <b>%1</b>").arg(encoder));
else
ui.labelEncProfile->setText(tr("Selected Encoder: <b>%1</b>").arg("Invalid encoder configuration!"));
}
else else
ui.labelEncProfile->setText(tr("Selected Encoder: <b>%1</b>").arg("Invalid encoder configuration!")); ui.labelEncProfile->setText(tr("Selected Encoder: <b>%1</b>").arg("Invalid encoder configuration!"));
ui.wavtrimthreshold->setValue(settings->wavtrimTh()); ui.wavtrimthreshold->setValue(settings->wavtrimTh());
} }

View file

@ -119,10 +119,17 @@ void InstallTalkWindow::setSettings(RbSettings* sett)
ui.labelTtsProfile->setText(tr("Selected TTS Engine: <b>%1</b>").arg("Invalid TTS configuration!")); ui.labelTtsProfile->setText(tr("Selected TTS Engine: <b>%1</b>").arg("Invalid TTS configuration!"));
QString encoder = settings->curEncoder(); QString encoder = settings->curEncoder();
EncBase* enc = getEncoder(encoder); // only proceed if encoder setting is set
enc->setCfg(settings); if(!encoder.isEmpty()) {
if(enc->configOk()) // FIXME: getEncoder CAN return a NULL pointer. Additional error
ui.labelEncProfile->setText(tr("Selected Encoder: <b>%1</b>").arg(encoder)); // checking is required or getEncoder should use the default engine
EncBase* enc = getEncoder(encoder);
enc->setCfg(settings);
if(enc->configOk())
ui.labelEncProfile->setText(tr("Selected Encoder: <b>%1</b>").arg(encoder));
else
ui.labelEncProfile->setText(tr("Selected Encoder: <b>%1</b>").arg("Invalid encoder configuration!"));
}
else else
ui.labelEncProfile->setText(tr("Selected Encoder: <b>%1</b>").arg("Invalid encoder configuration!")); ui.labelEncProfile->setText(tr("Selected Encoder: <b>%1</b>").arg("Invalid encoder configuration!"));