diff options
author | Dominik Wenger <domonoky@googlemail.com> | 2007-09-23 13:35:45 +0000 |
---|---|---|
committer | Dominik Wenger <domonoky@googlemail.com> | 2007-09-23 13:35:45 +0000 |
commit | acc70ec58d88771673c092711b3b2210a03c14bc (patch) | |
tree | 77b6bb7dee0c6b026501fbb7a6f20ea90c270f1b /rbutil/rbutilqt/configure.cpp | |
parent | 74154436a5fff8a8dd27115395c83c6d41ebf4e9 (diff) | |
download | rockbox-acc70ec58d88771673c092711b3b2210a03c14bc.tar.gz rockbox-acc70ec58d88771673c092711b3b2210a03c14bc.zip |
rbutil: added support for talkfile creation with the rockbox sapi_voice.vbs script. Also let the configure dialog remember options and paths for different tts and encoders.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14828 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'rbutil/rbutilqt/configure.cpp')
-rw-r--r-- | rbutil/rbutilqt/configure.cpp | 96 |
1 files changed, 74 insertions, 22 deletions
diff --git a/rbutil/rbutilqt/configure.cpp b/rbutil/rbutilqt/configure.cpp index 967e0111e9..f45eb42f14 100644 --- a/rbutil/rbutilqt/configure.cpp +++ b/rbutil/rbutilqt/configure.cpp | |||
@@ -128,18 +128,35 @@ void Config::accept() | |||
128 | userSettings->setValue("offline", ui.cacheOfflineMode->isChecked()); | 128 | userSettings->setValue("offline", ui.cacheOfflineMode->isChecked()); |
129 | 129 | ||
130 | // tts settings | 130 | // tts settings |
131 | if(QFileInfo(ui.ttsExecutable->text()).isExecutable()) | ||
132 | userSettings->setValue("ttsbin", ui.ttsExecutable->text()); | ||
133 | userSettings->setValue("ttsopts", ui.ttsOptions->text()); | ||
134 | if(QFileInfo(ui.encoderExecutable->text()).isExecutable()) | ||
135 | userSettings->setValue("encbin", ui.encoderExecutable->text()); | ||
136 | userSettings->setValue("ttsopts", ui.ttsOptions->text()); | ||
137 | QString preset; | 131 | QString preset; |
138 | preset = ui.comboEncoder->itemData(ui.comboEncoder->currentIndex(), Qt::UserRole).toString(); | ||
139 | userSettings->setValue("encpreset", preset); | ||
140 | preset = ui.comboTts->itemData(ui.comboTts->currentIndex(), Qt::UserRole).toString(); | 132 | preset = ui.comboTts->itemData(ui.comboTts->currentIndex(), Qt::UserRole).toString(); |
141 | userSettings->setValue("ttspreset", preset); | 133 | userSettings->setValue("ttspreset", preset); |
142 | 134 | userSettings->beginGroup(preset); | |
135 | |||
136 | if(QFileInfo(ui.ttsExecutable->text()).exists()) | ||
137 | userSettings->setValue("binary", ui.ttsExecutable->text()); | ||
138 | userSettings->setValue("options", ui.ttsOptions->text()); | ||
139 | userSettings->setValue("language", ui.ttsLanguage->text()); | ||
140 | devices->beginGroup(preset); | ||
141 | userSettings->setValue("template", devices->value("template").toString()); | ||
142 | userSettings->setValue("type", devices->value("tts").toString()); | ||
143 | devices->endGroup(); | ||
144 | userSettings->endGroup(); | ||
145 | |||
146 | //encoder settings | ||
147 | preset = ui.comboEncoder->itemData(ui.comboEncoder->currentIndex(), Qt::UserRole).toString(); | ||
148 | userSettings->setValue("encpreset", preset); | ||
149 | userSettings->beginGroup(preset); | ||
150 | |||
151 | if(QFileInfo(ui.encoderExecutable->text()).isExecutable()) | ||
152 | userSettings->setValue("binary", ui.encoderExecutable->text()); | ||
153 | userSettings->setValue("options", ui.encoderOptions->text()); | ||
154 | devices->beginGroup(preset); | ||
155 | userSettings->setValue("template", devices->value("template").toString()); | ||
156 | userSettings->setValue("type", devices->value("tts").toString()); | ||
157 | devices->endGroup(); | ||
158 | userSettings->endGroup(); | ||
159 | |||
143 | // sync settings | 160 | // sync settings |
144 | userSettings->sync(); | 161 | userSettings->sync(); |
145 | this->close(); | 162 | this->close(); |
@@ -302,7 +319,21 @@ void Config::setDevices(QSettings *dev) | |||
302 | devices->beginGroup("tts"); | 319 | devices->beginGroup("tts"); |
303 | keys = devices->allKeys(); | 320 | keys = devices->allKeys(); |
304 | for(int i=0; i < keys.size();i++) | 321 | for(int i=0; i < keys.size();i++) |
305 | ui.comboTts->addItem(devices->value(keys.at(i), "null").toString(), keys.at(i)); | 322 | { |
323 | devices->endGroup(); | ||
324 | devices->beginGroup(keys.at(i)); | ||
325 | QString os = devices->value("os").toString(); | ||
326 | devices->endGroup(); | ||
327 | devices->beginGroup("tts"); | ||
328 | |||
329 | if(os == "all") | ||
330 | ui.comboTts->addItem(devices->value(keys.at(i), "null").toString(), keys.at(i)); | ||
331 | |||
332 | #if defined(Q_OS_WIN32) | ||
333 | if(os == "win32") | ||
334 | ui.comboTts->addItem(devices->value(keys.at(i), "null").toString(), keys.at(i)); | ||
335 | #endif | ||
336 | } | ||
306 | devices->endGroup(); | 337 | devices->endGroup(); |
307 | 338 | ||
308 | int index; | 339 | int index; |
@@ -311,14 +342,12 @@ void Config::setDevices(QSettings *dev) | |||
311 | if(index < 0) index = 0; | 342 | if(index < 0) index = 0; |
312 | ui.comboTts->setCurrentIndex(index); | 343 | ui.comboTts->setCurrentIndex(index); |
313 | updateTtsOpts(index); | 344 | updateTtsOpts(index); |
314 | ui.ttsExecutable->setText(userSettings->value("ttsbin").toString()); | 345 | |
315 | |||
316 | index = ui.comboEncoder->findData(userSettings->value("encpreset").toString(), | 346 | index = ui.comboEncoder->findData(userSettings->value("encpreset").toString(), |
317 | Qt::UserRole, Qt::MatchExactly); | 347 | Qt::UserRole, Qt::MatchExactly); |
318 | if(index < 0) index = 0; | 348 | if(index < 0) index = 0; |
319 | ui.comboEncoder->setCurrentIndex(index); | 349 | ui.comboEncoder->setCurrentIndex(index); |
320 | updateEncOpts(index); | 350 | updateEncOpts(index); |
321 | ui.encoderExecutable->setText(userSettings->value("encbin").toString()); | ||
322 | 351 | ||
323 | } | 352 | } |
324 | 353 | ||
@@ -347,9 +376,9 @@ void Config::updateEncOpts(int index) | |||
347 | for(int i = 0; i < path.size(); i++) { | 376 | for(int i = 0; i < path.size(); i++) { |
348 | QString executable = QDir::fromNativeSeparators(path.at(i)) + "/" + e; | 377 | QString executable = QDir::fromNativeSeparators(path.at(i)) + "/" + e; |
349 | #if defined(Q_OS_WIN) | 378 | #if defined(Q_OS_WIN) |
350 | executable += ".exe"; | 379 | executable += ".exe"; |
351 | QStringList ex = executable.split("\"", QString::SkipEmptyParts); | 380 | QStringList ex = executable.split("\"", QString::SkipEmptyParts); |
352 | executable = ex.join(""); | 381 | executable = ex.join(""); |
353 | #endif | 382 | #endif |
354 | if(QFileInfo(executable).isExecutable()) { | 383 | if(QFileInfo(executable).isExecutable()) { |
355 | qDebug() << "found:" << executable; | 384 | qDebug() << "found:" << executable; |
@@ -360,6 +389,15 @@ void Config::updateEncOpts(int index) | |||
360 | break; | 389 | break; |
361 | } | 390 | } |
362 | } | 391 | } |
392 | |||
393 | //user settings | ||
394 | userSettings->beginGroup(c); | ||
395 | QString temp = userSettings->value("binary","null").toString(); | ||
396 | if(temp != "null") ui.encoderExecutable->setText(temp); | ||
397 | temp = userSettings->value("options","null").toString(); | ||
398 | if(temp != "null") ui.encoderOptions->setText(temp); | ||
399 | userSettings->endGroup(); | ||
400 | |||
363 | } | 401 | } |
364 | 402 | ||
365 | 403 | ||
@@ -367,14 +405,18 @@ void Config::updateTtsOpts(int index) | |||
367 | { | 405 | { |
368 | bool edit; | 406 | bool edit; |
369 | QString e; | 407 | QString e; |
408 | bool needsLanguageCfg; | ||
370 | QString c = ui.comboTts->itemData(index, Qt::UserRole).toString(); | 409 | QString c = ui.comboTts->itemData(index, Qt::UserRole).toString(); |
371 | devices->beginGroup(c); | 410 | devices->beginGroup(c); |
372 | edit = devices->value("edit").toBool(); | 411 | edit = devices->value("edit").toBool(); |
412 | needsLanguageCfg = devices->value("needslanguagecfg").toBool(); | ||
413 | ui.ttsLanguage->setVisible(needsLanguageCfg); | ||
414 | ui.ttsLanguageLabel->setVisible(needsLanguageCfg); | ||
373 | ui.ttsOptions->setText(devices->value("options").toString()); | 415 | ui.ttsOptions->setText(devices->value("options").toString()); |
374 | ui.ttsOptions->setEnabled(devices->value("edit").toBool()); | 416 | ui.ttsOptions->setEnabled(devices->value("edit").toBool()); |
375 | e = devices->value("tts").toString(); | 417 | e = devices->value("tts").toString(); |
376 | devices->endGroup(); | 418 | devices->endGroup(); |
377 | 419 | ||
378 | #if defined(Q_OS_LINUX) || defined(Q_OS_MACX) | 420 | #if defined(Q_OS_LINUX) || defined(Q_OS_MACX) |
379 | QStringList path = QString(getenv("PATH")).split(":", QString::SkipEmptyParts); | 421 | QStringList path = QString(getenv("PATH")).split(":", QString::SkipEmptyParts); |
380 | #elif defined(Q_OS_WIN) | 422 | #elif defined(Q_OS_WIN) |
@@ -385,11 +427,11 @@ void Config::updateTtsOpts(int index) | |||
385 | for(int i = 0; i < path.size(); i++) { | 427 | for(int i = 0; i < path.size(); i++) { |
386 | QString executable = QDir::fromNativeSeparators(path.at(i)) + "/" + e; | 428 | QString executable = QDir::fromNativeSeparators(path.at(i)) + "/" + e; |
387 | #if defined(Q_OS_WIN) | 429 | #if defined(Q_OS_WIN) |
388 | executable += ".exe"; | 430 | executable += ".exe"; |
389 | QStringList ex = executable.split("\"", QString::SkipEmptyParts); | 431 | QStringList ex = executable.split("\"", QString::SkipEmptyParts); |
390 | executable = ex.join(""); | 432 | executable = ex.join(""); |
391 | #endif | 433 | #endif |
392 | qDebug() << executable; | 434 | qDebug() << executable; |
393 | if(QFileInfo(executable).isExecutable()) { | 435 | if(QFileInfo(executable).isExecutable()) { |
394 | ui.ttsExecutable->setText(QDir::toNativeSeparators(executable)); | 436 | ui.ttsExecutable->setText(QDir::toNativeSeparators(executable)); |
395 | // disallow changing the detected path if non-customizable profile | 437 | // disallow changing the detected path if non-customizable profile |
@@ -398,6 +440,16 @@ void Config::updateTtsOpts(int index) | |||
398 | break; | 440 | break; |
399 | } | 441 | } |
400 | } | 442 | } |
443 | |||
444 | //user settings | ||
445 | userSettings->beginGroup(c); | ||
446 | QString temp = userSettings->value("binary","null").toString(); | ||
447 | if(temp != "null") ui.ttsExecutable->setText(temp); | ||
448 | temp = userSettings->value("options","null").toString(); | ||
449 | if(temp != "null") ui.ttsOptions->setText(temp); | ||
450 | temp = userSettings->value("language","null").toString(); | ||
451 | if(temp != "null") ui.ttsLanguage->setText(temp); | ||
452 | userSettings->endGroup(); | ||
401 | } | 453 | } |
402 | 454 | ||
403 | 455 | ||
@@ -672,7 +724,7 @@ void Config::browseTts() | |||
672 | { | 724 | { |
673 | qDebug() << browser.getSelected(); | 725 | qDebug() << browser.getSelected(); |
674 | QString exe = browser.getSelected(); | 726 | QString exe = browser.getSelected(); |
675 | if(!QFileInfo(exe).isExecutable()) | 727 | if(!QFileInfo(exe).exists()) |
676 | return; | 728 | return; |
677 | ui.ttsExecutable->setText(exe); | 729 | ui.ttsExecutable->setText(exe); |
678 | } | 730 | } |