summaryrefslogtreecommitdiff
path: root/rbutil/rbutilqt/configure.cpp
diff options
context:
space:
mode:
authorDominik Wenger <domonoky@googlemail.com>2007-12-15 13:13:57 +0000
committerDominik Wenger <domonoky@googlemail.com>2007-12-15 13:13:57 +0000
commitbebddd42c265bf63845f42bb29f48de5ed263f69 (patch)
treeb5dbb6e711d4d71034c4ee19ddfa7e0af043971b /rbutil/rbutilqt/configure.cpp
parent1e489e53b8d0807fc52423ae7453d4b1d047d370 (diff)
downloadrockbox-bebddd42c265bf63845f42bb29f48de5ed263f69.tar.gz
rockbox-bebddd42c265bf63845f42bb29f48de5ed263f69.zip
rbutil: reworked configuration of TTS engines to the new Style.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15932 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'rbutil/rbutilqt/configure.cpp')
-rw-r--r--rbutil/rbutilqt/configure.cpp143
1 files changed, 34 insertions, 109 deletions
diff --git a/rbutil/rbutilqt/configure.cpp b/rbutil/rbutilqt/configure.cpp
index 4e483ed894..337f5bc210 100644
--- a/rbutil/rbutilqt/configure.cpp
+++ b/rbutil/rbutilqt/configure.cpp
@@ -24,6 +24,7 @@
24#include "ui_configurefrm.h" 24#include "ui_configurefrm.h"
25#include "browsedirtree.h" 25#include "browsedirtree.h"
26#include "encoders.h" 26#include "encoders.h"
27#include "tts.h"
27 28
28#include <stdio.h> 29#include <stdio.h>
29#if defined(Q_OS_WIN32) 30#if defined(Q_OS_WIN32)
@@ -75,9 +76,9 @@ Config::Config(QWidget *parent,int index) : QDialog(parent)
75 connect(ui.buttonAutodetect,SIGNAL(clicked()),this,SLOT(autodetect())); 76 connect(ui.buttonAutodetect,SIGNAL(clicked()),this,SLOT(autodetect()));
76 connect(ui.buttonCacheBrowse, SIGNAL(clicked()), this, SLOT(browseCache())); 77 connect(ui.buttonCacheBrowse, SIGNAL(clicked()), this, SLOT(browseCache()));
77 connect(ui.buttonCacheClear, SIGNAL(clicked()), this, SLOT(cacheClear())); 78 connect(ui.buttonCacheClear, SIGNAL(clicked()), this, SLOT(cacheClear()));
78 connect(ui.browseTts, SIGNAL(clicked()), this, SLOT(browseTts())); 79 connect(ui.configTts, SIGNAL(clicked()), this, SLOT(configTts()));
79 connect(ui.configEncoder, SIGNAL(clicked()), this, SLOT(configEnc())); 80 connect(ui.configEncoder, SIGNAL(clicked()), this, SLOT(configEnc()));
80 connect(ui.comboTts, SIGNAL(currentIndexChanged(int)), this, SLOT(updateTtsOpts(int))); 81 connect(ui.comboTts, SIGNAL(currentIndexChanged(int)), this, SLOT(updateTtsState(int)));
81 connect(ui.comboEncoder, SIGNAL(currentIndexChanged(int)), this, SLOT(updateEncState(int))); 82 connect(ui.comboEncoder, SIGNAL(currentIndexChanged(int)), this, SLOT(updateEncState(int)));
82 83
83} 84}
@@ -131,20 +132,7 @@ void Config::accept()
131 userSettings->setValue("offline", ui.cacheOfflineMode->isChecked()); 132 userSettings->setValue("offline", ui.cacheOfflineMode->isChecked());
132 133
133 // tts settings 134 // tts settings
134 QString preset; 135 userSettings->setValue("tts",ui.comboTts->currentText());
135 preset = ui.comboTts->itemData(ui.comboTts->currentIndex(), Qt::UserRole).toString();
136 userSettings->setValue("ttspreset", preset);
137 userSettings->beginGroup(preset);
138
139 if(QFileInfo(ui.ttsExecutable->text()).exists())
140 userSettings->setValue("binary", ui.ttsExecutable->text());
141 userSettings->setValue("options", ui.ttsOptions->text());
142 userSettings->setValue("language", ui.ttsLanguage->text());
143 devices->beginGroup(preset);
144 userSettings->setValue("template", devices->value("template").toString());
145 userSettings->setValue("type", devices->value("tts").toString());
146 devices->endGroup();
147 userSettings->endGroup();
148 136
149 //encoder settings 137 //encoder settings
150 userSettings->setValue("encoder",ui.comboEncoder->currentText()); 138 userSettings->setValue("encoder",ui.comboEncoder->currentText());
@@ -316,86 +304,34 @@ void Config::setDevices(QSettings *dev)
316 updateEncState(index); 304 updateEncState(index);
317 305
318 //tts 306 //tts
319 devices->beginGroup("tts"); 307 ui.comboTts->addItems(getTTSList());
320 QStringList keys = devices->allKeys(); 308
321 for(int i=0; i < keys.size();i++) 309
322 { 310 //update index of combobox
323 devices->endGroup(); 311 index = ui.comboTts->findText(userSettings->value("tts").toString(),Qt::MatchExactly);
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 }
337 devices->endGroup();
338
339
340 index = ui.comboTts->findData(userSettings->value("ttspreset").toString(),
341 Qt::UserRole, Qt::MatchExactly);
342 if(index < 0) index = 0; 312 if(index < 0) index = 0;
343 ui.comboTts->setCurrentIndex(index); 313 ui.comboTts->setCurrentIndex(index);
344 updateTtsOpts(index); 314 updateTtsState(index);
345 315
346
347} 316}
348 317
349 318
350void Config::updateTtsOpts(int index) 319void Config::updateTtsState(int index)
351{ 320{
352 bool edit; 321 QString ttsName = ui.comboTts->itemText(index);
353 QString e; 322 TTSBase* tts = getTTS(ttsName);
354 bool needsLanguageCfg; 323 tts->setUserCfg(userSettings);
355 QString c = ui.comboTts->itemData(index, Qt::UserRole).toString();
356 devices->beginGroup(c);
357 edit = devices->value("edit").toBool();
358 needsLanguageCfg = devices->value("needslanguagecfg").toBool();
359 ui.ttsLanguage->setVisible(needsLanguageCfg);
360 ui.ttsLanguageLabel->setVisible(needsLanguageCfg);
361 ui.ttsOptions->setText(devices->value("options").toString());
362 ui.ttsOptions->setEnabled(devices->value("edit").toBool());
363 e = devices->value("tts").toString();
364 devices->endGroup();
365
366#if defined(Q_OS_LINUX) || defined(Q_OS_MACX)
367 QStringList path = QString(getenv("PATH")).split(":", QString::SkipEmptyParts);
368#elif defined(Q_OS_WIN)
369 QStringList path = QString(getenv("PATH")).split(";", QString::SkipEmptyParts);
370#endif
371 qDebug() << path;
372 ui.ttsExecutable->setEnabled(true);
373 for(int i = 0; i < path.size(); i++) {
374 QString executable = QDir::fromNativeSeparators(path.at(i)) + "/" + e;
375#if defined(Q_OS_WIN)
376 executable += ".exe";
377 QStringList ex = executable.split("\"", QString::SkipEmptyParts);
378 executable = ex.join("");
379#endif
380 qDebug() << executable;
381 if(QFileInfo(executable).isExecutable()) {
382 ui.ttsExecutable->setText(QDir::toNativeSeparators(executable));
383 // disallow changing the detected path if non-customizable profile
384 if(!edit)
385 ui.ttsExecutable->setEnabled(false);
386 break;
387 }
388 }
389 324
390 //user settings 325 if(tts->configOk())
391 userSettings->beginGroup(c); 326 {
392 QString temp = userSettings->value("binary","null").toString(); 327 ui.configTTSstatus->setText("Configuration OK");
393 if(temp != "null") ui.ttsExecutable->setText(temp); 328 ui.configTTSstatusimg->setPixmap(QPixmap(QString::fromUtf8(":/icons/icons/go-next.png")));
394 temp = userSettings->value("options","null").toString(); 329 }
395 if(temp != "null") ui.ttsOptions->setText(temp); 330 else
396 temp = userSettings->value("language","null").toString(); 331 {
397 if(temp != "null") ui.ttsLanguage->setText(temp); 332 ui.configTTSstatus->setText("Configuration INVALID");
398 userSettings->endGroup(); 333 ui.configTTSstatusimg->setPixmap(QPixmap(QString::fromUtf8(":/icons/icons/dialog-error.png")));
334 }
399} 335}
400 336
401void Config::updateEncState(int index) 337void Config::updateEncState(int index)
@@ -406,13 +342,13 @@ void Config::updateEncState(int index)
406 342
407 if(enc->configOk()) 343 if(enc->configOk())
408 { 344 {
409 ui.configstatus->setText("Configuration OK"); 345 ui.configEncstatus->setText("Configuration OK");
410 ui.configstatusimg->setPixmap(QPixmap(QString::fromUtf8(":/icons/icons/go-next.png"))); 346 ui.configEncstatusimg->setPixmap(QPixmap(QString::fromUtf8(":/icons/icons/go-next.png")));
411 } 347 }
412 else 348 else
413 { 349 {
414 ui.configstatus->setText("Configuration INVALID"); 350 ui.configEncstatus->setText("Configuration INVALID");
415 ui.configstatusimg->setPixmap(QPixmap(QString::fromUtf8(":/icons/icons/dialog-error.png"))); 351 ui.configEncstatusimg->setPixmap(QPixmap(QString::fromUtf8(":/icons/icons/dialog-error.png")));
416 } 352 }
417} 353}
418 354
@@ -676,24 +612,13 @@ void Config::cacheClear()
676} 612}
677 613
678 614
679void Config::browseTts() 615void Config::configTts()
680{ 616{
681 BrowseDirtree browser(this); 617 TTSBase* tts =getTTS(ui.comboTts->currentText());
682 browser.setFilter(QDir::Dirs | QDir::Files | QDir::NoDotAndDotDot); 618
683 619 tts->setUserCfg(userSettings);
684 if(QFileInfo(ui.ttsExecutable->text()).isDir()) 620 tts->showCfg();
685 { 621 updateTtsState(ui.comboTts->currentIndex());
686 browser.setDir(ui.ttsExecutable->text());
687 }
688 if(browser.exec() == QDialog::Accepted)
689 {
690 qDebug() << browser.getSelected();
691 QString exe = browser.getSelected();
692 if(!QFileInfo(exe).exists())
693 return;
694 ui.ttsExecutable->setText(exe);
695 }
696
697} 622}
698 623
699 624