summaryrefslogtreecommitdiff
path: root/rbutil/rbutilqt/installtalkwindow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'rbutil/rbutilqt/installtalkwindow.cpp')
-rw-r--r--rbutil/rbutilqt/installtalkwindow.cpp192
1 files changed, 35 insertions, 157 deletions
diff --git a/rbutil/rbutilqt/installtalkwindow.cpp b/rbutil/rbutilqt/installtalkwindow.cpp
index d52d7788ce..cc2def6ab1 100644
--- a/rbutil/rbutilqt/installtalkwindow.cpp
+++ b/rbutil/rbutilqt/installtalkwindow.cpp
@@ -28,19 +28,12 @@ InstallTalkWindow::InstallTalkWindow(QWidget *parent) : QDialog(parent)
28 talkcreator = new TalkFileCreator(this); 28 talkcreator = new TalkFileCreator(this);
29 29
30 connect(ui.buttonBrowse, SIGNAL(clicked()), this, SLOT(browseFolder())); 30 connect(ui.buttonBrowse, SIGNAL(clicked()), this, SLOT(browseFolder()));
31 connect(ui.buttonBrowseTTS, SIGNAL(clicked()), this, SLOT(browseTTS())); 31
32 connect(ui.buttonBrowseEncoder, SIGNAL(clicked()), this, SLOT(browseEncoder()));
33
34 connect(ui.Encodercbx,SIGNAL(currentIndexChanged(int)),this,SLOT(setEncoderOptions(int)));
35 connect(ui.TTScbx,SIGNAL(currentIndexChanged(int)),this,SLOT(setTTSOptions(int)));
36
37 ui.OverwriteWav->setChecked(true); 32 ui.OverwriteWav->setChecked(true);
38 ui.RemoveWav->setChecked(true); 33 ui.RemoveWav->setChecked(true);
39 ui.recursive->setChecked(true); 34 ui.recursive->setChecked(true);
40 ui.OverwriteTalk->setChecked(true); 35 ui.OverwriteTalk->setChecked(true);
41 ui.StripExtensions->setChecked(true); 36 ui.StripExtensions->setChecked(true);
42
43
44} 37}
45 38
46void InstallTalkWindow::browseFolder() 39void InstallTalkWindow::browseFolder()
@@ -67,87 +60,9 @@ void InstallTalkWindow::browseFolder()
67 60
68void InstallTalkWindow::setTalkFolder(QString folder) 61void InstallTalkWindow::setTalkFolder(QString folder)
69{ 62{
70 ui.lineTalkFolder->clear(); 63 ui.lineTalkFolder->setText(folder);
71 ui.lineTalkFolder->insert(folder);
72} 64}
73 65
74void InstallTalkWindow::browseTTS()
75{
76 BrowseDirtree browser(this);
77 browser.setFilter(QDir::Dirs | QDir::Files | QDir::NoDotAndDotDot);
78
79 if(QFileInfo(ui.TTSpath->text()).isDir())
80 {
81 QDir d(ui.TTSpath->text());
82 browser.setDir(d);
83 }
84 else
85 {
86 QDir d("/media");
87 browser.setDir(d);
88 }
89 if(browser.exec() == QDialog::Accepted)
90 {
91 qDebug() << browser.getSelected();
92 setTTSExec(browser.getSelected());
93 }
94
95}
96
97void InstallTalkWindow::setTTSExec(QString path)
98{
99 ui.TTSpath->clear();
100 ui.TTSpath->insert(path);
101}
102
103void InstallTalkWindow::browseEncoder()
104{
105 BrowseDirtree browser(this);
106 browser.setFilter(QDir::Dirs | QDir::Files | QDir::NoDotAndDotDot);
107
108 if(QFileInfo(ui.Encoderpath->text()).isDir())
109 {
110 QDir d(ui.Encoderpath->text());
111 browser.setDir(d);
112 }
113 else
114 {
115 QDir d("/media");
116 browser.setDir(d);
117 }
118 if(browser.exec() == QDialog::Accepted)
119 {
120 qDebug() << browser.getSelected();
121 setEncoderExec(browser.getSelected());
122 }
123}
124
125void InstallTalkWindow::setEncoderExec(QString path)
126{
127 ui.Encoderpath->clear();
128 ui.Encoderpath->insert(path);
129}
130
131void InstallTalkWindow::setEncoderOptions(int index)
132{
133 QString options = talkcreator->getEncOpts(ui.Encodercbx->itemText(index));
134 setEncoderOptions(options);
135}
136void InstallTalkWindow::setEncoderOptions(QString options)
137{
138 ui.EncoderOptions->clear();
139 ui.EncoderOptions->insert(options);
140}
141void InstallTalkWindow::setTTSOptions(QString options)
142{
143 ui.TTSOptions->clear();
144 ui.TTSOptions->insert(options);
145}
146void InstallTalkWindow::setTTSOptions(int index)
147{
148 QString options = talkcreator->getTTsOpts(ui.TTScbx->itemText(index));
149 setEncoderOptions(options);
150}
151 66
152void InstallTalkWindow::accept() 67void InstallTalkWindow::accept()
153{ 68{
@@ -155,8 +70,8 @@ void InstallTalkWindow::accept()
155 logger->show(); 70 logger->show();
156 71
157 QString folderToTalk = ui.lineTalkFolder->text(); 72 QString folderToTalk = ui.lineTalkFolder->text();
158 QString pathEncoder = ui.Encoderpath->text(); 73 QString pathEncoder = userSettings->value("encbin").toString();
159 QString pathTTS = ui.TTSpath->text(); 74 QString pathTTS = userSettings->value("ttsbin").toString();
160 75
161 if(!QFileInfo(folderToTalk).isDir()) 76 if(!QFileInfo(folderToTalk).isDir())
162 { 77 {
@@ -165,33 +80,40 @@ void InstallTalkWindow::accept()
165 return; 80 return;
166 } 81 }
167 82
168 if(!QFileInfo(pathEncoder).exists()) 83 if(!QFileInfo(pathEncoder).isExecutable())
169 { 84 {
170 logger->addItem(tr("Path to Encoder is wrong!"),LOGERROR); 85 logger->addItem(tr("Path to Encoder is wrong!"),LOGERROR);
171 logger->abort(); 86 logger->abort();
172 return; 87 return;
173 } 88 }
174 89
175 if(!QFileInfo(pathTTS).exists()) 90 if(!QFileInfo(pathTTS).isExecutable())
176 { 91 {
177 logger->addItem(tr("Path to TTS is wrong!"),LOGERROR); 92 logger->addItem(tr("Path to TTS is wrong!"),LOGERROR);
178 logger->abort(); 93 logger->abort();
179 return; 94 return;
180 } 95 }
181 96
182 userSettings->setValue("defaults/folderToTalk",folderToTalk); 97 userSettings->setValue("last_talked_folder", folderToTalk);
183 userSettings->setValue("defaults/pathEncoder",pathEncoder);
184 userSettings->setValue("defaults/pathTTS",pathTTS);
185 98
186 userSettings->sync(); 99 userSettings->sync();
187 100
188 talkcreator->setDir(folderToTalk); 101 talkcreator->setDir(folderToTalk);
189 talkcreator->setTTSexe(pathTTS); 102 talkcreator->setTTSexe(pathTTS);
190 talkcreator->setEncexe(pathEncoder); 103 talkcreator->setEncexe(pathEncoder);
191 talkcreator->setEncOpts(ui.EncoderOptions->text()); 104 talkcreator->setEncOpts(userSettings->value("encopts").toString());
192 talkcreator->setTTsOpts(ui.TTSOptions->text()); 105 talkcreator->setTTsOpts(userSettings->value("ttsopts").toString());
193 talkcreator->setTTsType(ui.TTScbx->currentText()); 106
194 talkcreator->setEncType(ui.Encodercbx->currentText()); 107 devices->beginGroup(userSettings->value("ttspreset").toString());
108 talkcreator->setTTsType(devices->value("tts").toString());
109 talkcreator->setTTsOpts(devices->value("options").toString());
110 talkcreator->setTTsTemplate(devices->value("template").toString());
111 devices->endGroup();
112 devices->beginGroup(userSettings->value("encpreset").toString());
113 talkcreator->setEncType(devices->value("encoder").toString());
114 talkcreator->setEncOpts(devices->value("options").toString());
115 talkcreator->setEncTemplate(devices->value("template").toString());
116 devices->endGroup();
195 117
196 talkcreator->setOverwriteTalk(ui.OverwriteTalk->isChecked()); 118 talkcreator->setOverwriteTalk(ui.OverwriteTalk->isChecked());
197 talkcreator->setOverwriteWav(ui.OverwriteWav->isChecked()); 119 talkcreator->setOverwriteWav(ui.OverwriteWav->isChecked());
@@ -200,7 +122,7 @@ void InstallTalkWindow::accept()
200 talkcreator->setStripExtensions(ui.StripExtensions->isChecked()); 122 talkcreator->setStripExtensions(ui.StripExtensions->isChecked());
201 123
202 talkcreator->createTalkFiles(logger); 124 talkcreator->createTalkFiles(logger);
203 connect(logger,SIGNAL(closed()),this,SLOT(close())); 125 connect(logger,SIGNAL(closed()),this,SLOT(close()));
204} 126}
205 127
206 128
@@ -208,64 +130,21 @@ void InstallTalkWindow::setDeviceSettings(QSettings *dev)
208{ 130{
209 devices = dev; 131 devices = dev;
210 qDebug() << "Install::setDeviceSettings:" << devices; 132 qDebug() << "Install::setDeviceSettings:" << devices;
211
212 QStringList encoders;
213 QStringList encodersOpts;
214 QStringList encodersTemplates;
215
216 QStringList tts;
217 QStringList ttsOpts;
218 QStringList ttsTemplates;
219 133
220 devices->beginGroup("encoders"); 134 QString profile;
221 QStringList keys = devices->allKeys();
222 qDebug() << keys;
223 for(int i=0; i < keys.size();i++)
224 {
225 encoders << devices->value(keys.at(i),"null").toString();
226 }
227 qDebug() << encoders;
228 devices->endGroup();
229 for(int i=0; i < encoders.size();i++)
230 {
231 devices->beginGroup(encoders.at(i));
232 encodersOpts << devices->value("options","null").toString();
233 encodersTemplates << devices->value("template","null").toString();
234 devices->endGroup();
235 }
236 qDebug() << encodersOpts;
237 qDebug() << encodersTemplates;
238 135
136 profile = userSettings->value("ttspreset").toString();
239 devices->beginGroup("tts"); 137 devices->beginGroup("tts");
240 keys = devices->allKeys(); 138 ui.labelTtsProfile->setText(tr("TTS Profile: <b>%1</b>")
241 qDebug() << keys; 139 .arg(devices->value(profile, tr("Invalid TTS profile!")).toString()));
242 for(int i=0; i < keys.size();i++) 140 qDebug() << profile;
243 { 141 devices->endGroup();
244 tts << devices->value(keys.at(i),"null").toString(); 142 profile = userSettings->value("encpreset").toString();
245 } 143 devices->beginGroup("encoders");
246 qDebug() << tts; 144 ui.labelEncProfile->setText(tr("Encoder Profile: <b>%1</b>")
145 .arg(devices->value(profile, tr("Invalid encoder profile!")).toString()));
146 qDebug() << profile;
247 devices->endGroup(); 147 devices->endGroup();
248 for(int i= 0; i < tts.size();i++)
249 {
250 devices->beginGroup(tts.at(i));
251 ttsOpts << devices->value("options","null").toString();
252 ttsTemplates << devices->value("template","null").toString();
253 devices->endGroup();
254 }
255 qDebug() << ttsOpts;
256 qDebug() << ttsTemplates;
257
258 talkcreator->setSupportedEnc(encoders);
259 talkcreator->setSupportedEncOptions(encodersOpts);
260 talkcreator->setSupportedEncTemplates(encodersTemplates);
261
262 talkcreator->setSupportedTTS(tts);
263 talkcreator->setSupportedTTSOptions(ttsOpts);
264 talkcreator->setSupportedTTSTemplates(ttsTemplates);
265
266 ui.Encodercbx->insertItems(0,talkcreator->getSupportedEnc());
267 ui.TTScbx->insertItems(0,talkcreator->getSupportedTTS());
268
269} 148}
270 149
271 150
@@ -277,7 +156,6 @@ void InstallTalkWindow::setUserSettings(QSettings *user)
277 156
278 talkcreator->setMountPoint(userSettings->value("defaults/mountpoint").toString()); 157 talkcreator->setMountPoint(userSettings->value("defaults/mountpoint").toString());
279 158
280 setTalkFolder(userSettings->value("defaults/folderToTalk").toString()); 159 setTalkFolder(userSettings->value("last_talked_folder").toString());
281 setEncoderExec(userSettings->value("defaults/pathEncoder").toString()); 160
282 setTTSExec(userSettings->value("defaults/pathTTS").toString());
283} 161}