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.cpp264
1 files changed, 264 insertions, 0 deletions
diff --git a/rbutil/rbutilqt/installtalkwindow.cpp b/rbutil/rbutilqt/installtalkwindow.cpp
new file mode 100644
index 0000000000..4d1cdb1491
--- /dev/null
+++ b/rbutil/rbutilqt/installtalkwindow.cpp
@@ -0,0 +1,264 @@
1/***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
8 *
9 * Copyright (C) 2007 by Dominik Riebeling
10 * $Id: installtalkwindow.cpp 14151 2007-08-02 22:27:51Z bluebrother $
11 *
12 * All files in this archive are subject to the GNU General Public License.
13 * See the file COPYING in the source tree root for full license agreement.
14 *
15 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
16 * KIND, either express or implied.
17 *
18 ****************************************************************************/
19
20#include "installtalkwindow.h"
21#include "ui_installtalkfrm.h"
22
23InstallTalkWindow::InstallTalkWindow(QWidget *parent) : QDialog(parent)
24{
25 ui.setupUi(this);
26 talkcreator = new TalkFileCreator(this);
27
28 connect(ui.buttonBrowse, SIGNAL(clicked()), this, SLOT(browseFolder()));
29 connect(ui.buttonBrowseTTS, SIGNAL(clicked()), this, SLOT(browseTTS()));
30 connect(ui.buttonBrowseEncoder, SIGNAL(clicked()), this, SLOT(browseEncoder()));
31
32 connect(ui.Encodercbx,SIGNAL(currentIndexChanged(int)),this,SLOT(setEncoderOptions(int)));
33 connect(ui.TTScbx,SIGNAL(currentIndexChanged(int)),this,SLOT(setTTSOptions(int)));
34
35 ui.OverwriteWav->setChecked(true);
36 ui.RemoveWav->setChecked(true);
37 ui.recursive->setChecked(true);
38 ui.OverwriteTalk->setChecked(true);
39 ui.StripExtensions->setChecked(true);
40
41
42}
43
44void InstallTalkWindow::browseFolder()
45{
46 QFileDialog browser(this);
47 if(QFileInfo(ui.lineTalkFolder->text()).isDir())
48 browser.setDirectory(ui.lineTalkFolder->text());
49 else
50 browser.setDirectory("/media");
51 browser.setReadOnly(true);
52 browser.setFileMode(QFileDialog::DirectoryOnly);
53 browser.setAcceptMode(QFileDialog::AcceptOpen);
54 if(browser.exec()) {
55 qDebug() << browser.directory();
56 QStringList files = browser.selectedFiles();
57 setTalkFolder(files.at(0));
58 }
59}
60
61void InstallTalkWindow::setTalkFolder(QString folder)
62{
63 ui.lineTalkFolder->clear();
64 ui.lineTalkFolder->insert(folder);
65}
66
67void InstallTalkWindow::browseTTS()
68{
69 QFileDialog browser(this);
70 if(QFileInfo(ui.TTSpath->text()).isDir())
71 browser.setDirectory(ui.TTSpath->text());
72 else
73 browser.setDirectory("/media");
74 browser.setReadOnly(true);
75 browser.setFileMode(QFileDialog::ExistingFile);
76 browser.setAcceptMode(QFileDialog::AcceptOpen);
77 if(browser.exec()) {
78 qDebug() << browser.directory();
79 QStringList files = browser.selectedFiles();
80 setTTSExec(files.at(0));
81 }
82}
83
84void InstallTalkWindow::setTTSExec(QString path)
85{
86 ui.TTSpath->clear();
87 ui.TTSpath->insert(path);
88}
89
90void InstallTalkWindow::browseEncoder()
91{
92 QFileDialog browser(this);
93 if(QFileInfo(ui.Encoderpath->text()).isDir())
94 browser.setDirectory(ui.Encoderpath->text());
95 else
96 browser.setDirectory("/media");
97 browser.setReadOnly(true);
98 browser.setFileMode(QFileDialog::ExistingFile);
99 browser.setAcceptMode(QFileDialog::AcceptOpen);
100 if(browser.exec()) {
101 qDebug() << browser.directory();
102 QStringList files = browser.selectedFiles();
103 setEncoderExec(files.at(0));
104 }
105}
106
107void InstallTalkWindow::setEncoderExec(QString path)
108{
109 ui.Encoderpath->clear();
110 ui.Encoderpath->insert(path);
111}
112
113void InstallTalkWindow::setEncoderOptions(int index)
114{
115 QString options = talkcreator->getEncOpts(ui.Encodercbx->itemText(index));
116 setEncoderOptions(options);
117}
118void InstallTalkWindow::setEncoderOptions(QString options)
119{
120 ui.EncoderOptions->clear();
121 ui.EncoderOptions->insert(options);
122}
123void InstallTalkWindow::setTTSOptions(QString options)
124{
125 ui.TTSOptions->clear();
126 ui.TTSOptions->insert(options);
127}
128void InstallTalkWindow::setTTSOptions(int index)
129{
130 QString options = talkcreator->getTTsOpts(ui.TTScbx->itemText(index));
131 setEncoderOptions(options);
132}
133
134void InstallTalkWindow::accept()
135{
136 logger = new ProgressLoggerGui(this);
137 logger->show();
138
139 QString folderToTalk = ui.lineTalkFolder->text();
140 QString pathEncoder = ui.Encoderpath->text();
141 QString pathTTS = ui.TTSpath->text();
142
143 if(!QFileInfo(folderToTalk).isDir())
144 {
145 logger->addItem(tr("The Folder to Talk is wrong!"),LOGERROR);
146 logger->abort();
147 return;
148 }
149
150 if(!QFileInfo(pathEncoder).exists())
151 {
152 logger->addItem(tr("Path to Encoder is wrong!"),LOGERROR);
153 logger->abort();
154 return;
155 }
156
157 if(!QFileInfo(pathTTS).exists())
158 {
159 logger->addItem(tr("Path to TTS is wrong!"),LOGERROR);
160 logger->abort();
161 return;
162 }
163
164 userSettings->setValue("defaults/folderToTalk",folderToTalk);
165 userSettings->setValue("defaults/pathEncoder",pathEncoder);
166 userSettings->setValue("defaults/pathTTS",pathTTS);
167
168 userSettings->sync();
169
170 talkcreator->setDir(folderToTalk);
171 talkcreator->setTTSexe(pathTTS);
172 talkcreator->setEncexe(pathEncoder);
173 talkcreator->setEncOpts(ui.EncoderOptions->text());
174 talkcreator->setTTsOpts(ui.TTSOptions->text());
175 talkcreator->setTTsType(ui.TTScbx->currentText());
176 talkcreator->setEncType(ui.Encodercbx->currentText());
177
178 talkcreator->setOverwriteTalk(ui.OverwriteTalk->isChecked());
179 talkcreator->setOverwriteWav(ui.OverwriteWav->isChecked());
180 talkcreator->setRemoveWav(ui.RemoveWav->isChecked());
181 talkcreator->setRecursive(ui.recursive->isChecked());
182 talkcreator->setStripExtensions(ui.StripExtensions->isChecked());
183
184 talkcreator->createTalkFiles(logger);
185}
186
187
188void InstallTalkWindow::setDeviceSettings(QSettings *dev)
189{
190 devices = dev;
191 qDebug() << "Install::setDeviceSettings:" << devices;
192
193 QStringList encoders;
194 QStringList encodersOpts;
195 QStringList encodersTemplates;
196
197 QStringList tts;
198 QStringList ttsOpts;
199 QStringList ttsTemplates;
200
201 devices->beginGroup("encoders");
202 QStringList keys = devices->allKeys();
203 qDebug() << keys;
204 for(int i=0; i < keys.size();i++)
205 {
206 encoders << devices->value(keys.at(i),"null").toString();
207 }
208 qDebug() << encoders;
209 devices->endGroup();
210 for(int i=0; i < encoders.size();i++)
211 {
212 devices->beginGroup(encoders.at(i));
213 encodersOpts << devices->value("options","null").toString();
214 encodersTemplates << devices->value("template","null").toString();
215 devices->endGroup();
216 }
217 qDebug() << encodersOpts;
218 qDebug() << encodersTemplates;
219
220 devices->beginGroup("tts");
221 keys = devices->allKeys();
222 qDebug() << keys;
223 for(int i=0; i < keys.size();i++)
224 {
225 tts << devices->value(keys.at(i),"null").toString();
226 }
227 qDebug() << tts;
228 devices->endGroup();
229 for(int i= 0; i < tts.size();i++)
230 {
231 devices->beginGroup(tts.at(i));
232 ttsOpts << devices->value("options","null").toString();
233 ttsTemplates << devices->value("template","null").toString();
234 devices->endGroup();
235 }
236 qDebug() << ttsOpts;
237 qDebug() << ttsTemplates;
238
239 talkcreator->setSupportedEnc(encoders);
240 talkcreator->setSupportedEncOptions(encodersOpts);
241 talkcreator->setSupportedEncTemplates(encodersTemplates);
242
243 talkcreator->setSupportedTTS(tts);
244 talkcreator->setSupportedTTSOptions(ttsOpts);
245 talkcreator->setSupportedTTSTemplates(ttsTemplates);
246
247 ui.Encodercbx->insertItems(0,talkcreator->getSupportedEnc());
248 ui.TTScbx->insertItems(0,talkcreator->getSupportedTTS());
249
250}
251
252
253
254
255void InstallTalkWindow::setUserSettings(QSettings *user)
256{
257 userSettings = user;
258
259
260
261 setTalkFolder(userSettings->value("defaults/folderToTalk").toString());
262 setEncoderExec(userSettings->value("defaults/pathEncoder").toString());
263 setTTSExec(userSettings->value("defaults/pathTTS").toString());
264}