summaryrefslogtreecommitdiff
path: root/rbutil/rbutilqt/configure.cpp
diff options
context:
space:
mode:
authorDominik Wenger <domonoky@googlemail.com>2007-09-23 13:35:45 +0000
committerDominik Wenger <domonoky@googlemail.com>2007-09-23 13:35:45 +0000
commitacc70ec58d88771673c092711b3b2210a03c14bc (patch)
tree77b6bb7dee0c6b026501fbb7a6f20ea90c270f1b /rbutil/rbutilqt/configure.cpp
parent74154436a5fff8a8dd27115395c83c6d41ebf4e9 (diff)
downloadrockbox-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.cpp96
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 }