diff options
author | Dominik Riebeling <Dominik.Riebeling@gmail.com> | 2007-08-28 23:10:42 +0000 |
---|---|---|
committer | Dominik Riebeling <Dominik.Riebeling@gmail.com> | 2007-08-28 23:10:42 +0000 |
commit | c03102b34616f81f35cc2ea17af2942fd009d291 (patch) | |
tree | b6a61535c9e63e9a982b9dc5493f0d27c86f2788 /rbutil/rbutilqt/installtalkwindow.cpp | |
parent | f2bf042edfef57e499b4d18694acca92d435d447 (diff) | |
download | rockbox-c03102b34616f81f35cc2ea17af2942fd009d291.tar.gz rockbox-c03102b34616f81f35cc2ea17af2942fd009d291.zip |
Completely rework the talk files window: move settings to configuration dialog and add configuration presets. Remove some old cruft from talkfile handling and rely on values from rbutil.ini. Autodetection of executables is missing.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14495 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'rbutil/rbutilqt/installtalkwindow.cpp')
-rw-r--r-- | rbutil/rbutilqt/installtalkwindow.cpp | 192 |
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 | ||
46 | void InstallTalkWindow::browseFolder() | 39 | void InstallTalkWindow::browseFolder() |
@@ -67,87 +60,9 @@ void InstallTalkWindow::browseFolder() | |||
67 | 60 | ||
68 | void InstallTalkWindow::setTalkFolder(QString folder) | 61 | void InstallTalkWindow::setTalkFolder(QString folder) |
69 | { | 62 | { |
70 | ui.lineTalkFolder->clear(); | 63 | ui.lineTalkFolder->setText(folder); |
71 | ui.lineTalkFolder->insert(folder); | ||
72 | } | 64 | } |
73 | 65 | ||
74 | void 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 | |||
97 | void InstallTalkWindow::setTTSExec(QString path) | ||
98 | { | ||
99 | ui.TTSpath->clear(); | ||
100 | ui.TTSpath->insert(path); | ||
101 | } | ||
102 | |||
103 | void 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 | |||
125 | void InstallTalkWindow::setEncoderExec(QString path) | ||
126 | { | ||
127 | ui.Encoderpath->clear(); | ||
128 | ui.Encoderpath->insert(path); | ||
129 | } | ||
130 | |||
131 | void InstallTalkWindow::setEncoderOptions(int index) | ||
132 | { | ||
133 | QString options = talkcreator->getEncOpts(ui.Encodercbx->itemText(index)); | ||
134 | setEncoderOptions(options); | ||
135 | } | ||
136 | void InstallTalkWindow::setEncoderOptions(QString options) | ||
137 | { | ||
138 | ui.EncoderOptions->clear(); | ||
139 | ui.EncoderOptions->insert(options); | ||
140 | } | ||
141 | void InstallTalkWindow::setTTSOptions(QString options) | ||
142 | { | ||
143 | ui.TTSOptions->clear(); | ||
144 | ui.TTSOptions->insert(options); | ||
145 | } | ||
146 | void InstallTalkWindow::setTTSOptions(int index) | ||
147 | { | ||
148 | QString options = talkcreator->getTTsOpts(ui.TTScbx->itemText(index)); | ||
149 | setEncoderOptions(options); | ||
150 | } | ||
151 | 66 | ||
152 | void InstallTalkWindow::accept() | 67 | void 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 | } |