diff options
author | Dominik Wenger <domonoky@googlemail.com> | 2008-01-29 21:54:43 +0000 |
---|---|---|
committer | Dominik Wenger <domonoky@googlemail.com> | 2008-01-29 21:54:43 +0000 |
commit | 0c66bdb2b01794448b7676a1b2b5ee5fd8c83371 (patch) | |
tree | 847eba2bd686d6639a002d602a102f36207c554e /rbutil/rbutilqt/tts.cpp | |
parent | 51f937c2e445eaef345d3a9d15782436bb5e5c27 (diff) | |
download | rockbox-0c66bdb2b01794448b7676a1b2b5ee5fd8c83371.tar.gz rockbox-0c66bdb2b01794448b7676a1b2b5ee5fd8c83371.zip |
rbutil: fix a bug in the new settings object. Seperate the config gui from tts and encoders. (in preparation for cli interface).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16183 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'rbutil/rbutilqt/tts.cpp')
-rw-r--r-- | rbutil/rbutilqt/tts.cpp | 159 |
1 files changed, 11 insertions, 148 deletions
diff --git a/rbutil/rbutilqt/tts.cpp b/rbutil/rbutilqt/tts.cpp index be2a20a31e..da15497c14 100644 --- a/rbutil/rbutilqt/tts.cpp +++ b/rbutil/rbutilqt/tts.cpp @@ -19,7 +19,7 @@ #include "tts.h" -#include "browsedirtree.h" + static QMap<QString,QString> ttsList; static QMap<QString,TTSBase*> ttsCache; @@ -82,7 +82,7 @@ QStringList getTTSList() /********************************************************************* * TTS Base **********************************************************************/ -TTSBase::TTSBase(QWidget *parent): QDialog(parent) +TTSBase::TTSBase(): QObject() { } @@ -90,7 +90,7 @@ TTSBase::TTSBase(QWidget *parent): QDialog(parent) /********************************************************************* * General TTS Exes **********************************************************************/ -TTSExes::TTSExes(QString name,QWidget *parent) : TTSBase(parent) +TTSExes::TTSExes(QString name) : TTSBase() { m_name = name; @@ -98,10 +98,6 @@ TTSExes::TTSExes(QString name,QWidget *parent) : TTSBase(parent) m_TemplateMap["flite"] = "\"%exe\" \"%options\" -o \"%wavfile\" \"%text\""; m_TemplateMap["swift"] = "\"%exe\" \"%options\" -o \"%wavfile\" \"%text\""; - ui.setupUi(this); - this->hide(); - connect(ui.reset,SIGNAL(clicked()),this,SLOT(reset())); - connect(ui.browse,SIGNAL(clicked()),this,SLOT(browse())); } bool TTSExes::start(QString *errStr) @@ -137,68 +133,11 @@ bool TTSExes::voice(QString text,QString wavfile) } - -void TTSExes::reset() -{ - ui.ttspath->setText(""); - ui.ttsoptions->setText(""); -} - void TTSExes::showCfg() { - // try to get config from settings - QString exepath =settings->ttsPath(m_name); - ui.ttsoptions->setText(settings->ttsOptions(m_name)); - - if(exepath == "") - { - - //try autodetect tts -#if defined(Q_OS_LINUX) || defined(Q_OS_MACX) - QStringList path = QString(getenv("PATH")).split(":", QString::SkipEmptyParts); -#elif defined(Q_OS_WIN) - QStringList path = QString(getenv("PATH")).split(";", QString::SkipEmptyParts); -#endif - qDebug() << path; - for(int i = 0; i < path.size(); i++) - { - QString executable = QDir::fromNativeSeparators(path.at(i)) + "/" + m_name; -#if defined(Q_OS_WIN) - executable += ".exe"; - QStringList ex = executable.split("\"", QString::SkipEmptyParts); - executable = ex.join(""); -#endif - qDebug() << executable; - if(QFileInfo(executable).isExecutable()) - { - exepath= QDir::toNativeSeparators(executable); - break; - } - } - - } - - ui.ttspath->setText(exepath); - - //show dialog - this->exec(); - -} - -void TTSExes::accept(void) -{ - //save settings in user config - settings->setTTSPath(m_name,ui.ttspath->text()); - settings->setTTSOptions(m_name,ui.ttsoptions->text()); - // sync settings - settings->sync(); - - this->close(); -} - -void TTSExes::reject(void) -{ - this->close(); + TTSExesGui gui; + gui.setCfg(settings); + gui.showCfg(m_name); } bool TTSExes::configOk() @@ -211,36 +150,14 @@ bool TTSExes::configOk() return false; } -void TTSExes::browse() -{ - BrowseDirtree browser(this); - browser.setFilter(QDir::Dirs | QDir::Files | QDir::NoDotAndDotDot); - - if(QFileInfo(ui.ttspath->text()).isDir()) - { - browser.setDir(ui.ttspath->text()); - } - if(browser.exec() == QDialog::Accepted) - { - qDebug() << browser.getSelected(); - QString exe = browser.getSelected(); - if(!QFileInfo(exe).isExecutable()) - return; - ui.ttspath->setText(exe); - } -} - /********************************************************************* * TTS Sapi **********************************************************************/ -TTSSapi::TTSSapi(QWidget *parent) : TTSBase(parent) +TTSSapi::TTSSapi() : TTSBase() { m_TTSTemplate = "cscript //nologo \"%exe\" /language:%lang /voice:\"%voice\" /speed:%speed \"%options\""; defaultLanguage ="english"; - ui.setupUi(this); - this->hide(); - connect(ui.reset,SIGNAL(clicked()),this,SLOT(reset())); - connect(ui.languagecombo,SIGNAL(currentIndexChanged(QString)),this,SLOT(updateVoices(QString))); + } @@ -329,14 +246,7 @@ QStringList TTSSapi::getVoiceList(QString language) return result; } -void TTSSapi::updateVoices(QString language) -{ - QStringList Voices = getVoiceList(language); - ui.voicecombo->clear(); - ui.voicecombo->addItems(Voices); - -} bool TTSSapi::voice(QString text,QString wavfile) { @@ -363,58 +273,11 @@ bool TTSSapi::stop() } -void TTSSapi::reset() -{ - ui.ttsoptions->setText(""); - ui.languagecombo->setCurrentIndex(ui.languagecombo->findText(defaultLanguage)); -} - void TTSSapi::showCfg() { - // try to get config from settings - ui.ttsoptions->setText(settings->ttsOptions("sapi")); - QString selLang = settings->ttsLang("sapi"); - QString selVoice = settings->ttsVoice("sapi"); - ui.speed->setValue(settings->ttsSpeed("sapi")); - - - // fill in language combobox - QStringList languages = settings->allLanguages(); - - languages.sort(); - ui.languagecombo->clear(); - ui.languagecombo->addItems(languages); - - // set saved lang - ui.languagecombo->setCurrentIndex(ui.languagecombo->findText(selLang)); - - // fill in voice combobox - updateVoices(selLang); - - // set saved lang - ui.voicecombo->setCurrentIndex(ui.voicecombo->findText(selVoice)); - - //show dialog - this->exec(); - -} - -void TTSSapi::accept(void) -{ - //save settings in user config - settings->setTTSOptions("sapi",ui.ttsoptions->text()); - settings->setTTSLang("sapi",ui.languagecombo->currentText()); - settings->setTTSVoice("sapi",ui.voicecombo->currentText()); - settings->setTTSSpeed("sapi",ui.speed->value()); - // sync settings - settings->sync(); - - this->close(); -} - -void TTSSapi::reject(void) -{ - this->close(); + TTSSapiGui gui(this); + gui.setCfg(settings); + gui.showCfg(); } bool TTSSapi::configOk() |