summaryrefslogtreecommitdiffstats
path: root/rbutil/rbutilqt/tts.cpp
diff options
context:
space:
mode:
authorDominik Wenger <domonoky@googlemail.com>2008-01-29 21:54:43 +0000
committerDominik Wenger <domonoky@googlemail.com>2008-01-29 21:54:43 +0000
commit0c66bdb2b01794448b7676a1b2b5ee5fd8c83371 (patch)
tree847eba2bd686d6639a002d602a102f36207c554e /rbutil/rbutilqt/tts.cpp
parent51f937c2e445eaef345d3a9d15782436bb5e5c27 (diff)
downloadrockbox-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.cpp159
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()