diff options
Diffstat (limited to 'rbutil/rbutilqt/configure.cpp')
-rw-r--r-- | rbutil/rbutilqt/configure.cpp | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/rbutil/rbutilqt/configure.cpp b/rbutil/rbutilqt/configure.cpp index e6b97b214d..b1f778b586 100644 --- a/rbutil/rbutilqt/configure.cpp +++ b/rbutil/rbutilqt/configure.cpp | |||
@@ -68,6 +68,10 @@ Config::Config(QWidget *parent) : QDialog(parent) | |||
68 | connect(ui.buttonAutodetect,SIGNAL(clicked()),this,SLOT(autodetect())); | 68 | connect(ui.buttonAutodetect,SIGNAL(clicked()),this,SLOT(autodetect())); |
69 | connect(ui.buttonCacheBrowse, SIGNAL(clicked()), this, SLOT(browseCache())); | 69 | connect(ui.buttonCacheBrowse, SIGNAL(clicked()), this, SLOT(browseCache())); |
70 | connect(ui.buttonCacheClear, SIGNAL(clicked()), this, SLOT(cacheClear())); | 70 | connect(ui.buttonCacheClear, SIGNAL(clicked()), this, SLOT(cacheClear())); |
71 | connect(ui.browseTts, SIGNAL(clicked()), this, SLOT(browseTts())); | ||
72 | connect(ui.comboEncoder, SIGNAL(currentIndexChanged(int)), this, SLOT(updateEncOpts(int))); | ||
73 | connect(ui.comboTts, SIGNAL(currentIndexChanged(int)), this, SLOT(updateTtsOpts(int))); | ||
74 | |||
71 | 75 | ||
72 | } | 76 | } |
73 | 77 | ||
@@ -119,6 +123,19 @@ void Config::accept() | |||
119 | userSettings->setValue("defaults/cachedisable", ui.cacheDisable->isChecked()); | 123 | userSettings->setValue("defaults/cachedisable", ui.cacheDisable->isChecked()); |
120 | userSettings->setValue("defaults/offline", ui.cacheOfflineMode->isChecked()); | 124 | userSettings->setValue("defaults/offline", ui.cacheOfflineMode->isChecked()); |
121 | 125 | ||
126 | // tts settings | ||
127 | if(QFileInfo(ui.ttsExecutable->text()).isExecutable()) | ||
128 | userSettings->setValue("ttsbin", ui.ttsExecutable->text()); | ||
129 | userSettings->setValue("ttsopts", ui.ttsOptions->text()); | ||
130 | if(QFileInfo(ui.encoderExecutable->text()).isExecutable()) | ||
131 | userSettings->setValue("encbin", ui.encoderExecutable->text()); | ||
132 | userSettings->setValue("ttsopts", ui.ttsOptions->text()); | ||
133 | QString preset; | ||
134 | preset = ui.comboEncoder->itemData(ui.comboEncoder->currentIndex(), Qt::UserRole).toString(); | ||
135 | userSettings->setValue("encpreset", preset); | ||
136 | preset = ui.comboTts->itemData(ui.comboTts->currentIndex(), Qt::UserRole).toString(); | ||
137 | userSettings->setValue("ttspreset", preset); | ||
138 | |||
122 | // sync settings | 139 | // sync settings |
123 | userSettings->sync(); | 140 | userSettings->sync(); |
124 | this->close(); | 141 | this->close(); |
@@ -186,6 +203,7 @@ void Config::setUserSettings(QSettings *user) | |||
186 | } | 203 | } |
187 | ui.cacheSize->setText(tr("Current cache size is %1 kiB.") | 204 | ui.cacheSize->setText(tr("Current cache size is %1 kiB.") |
188 | .arg(sz/1024)); | 205 | .arg(sz/1024)); |
206 | |||
189 | } | 207 | } |
190 | 208 | ||
191 | 209 | ||
@@ -262,6 +280,58 @@ void Config::setDevices(QSettings *dev) | |||
262 | ui.treeDevices->insertTopLevelItems(0, items); | 280 | ui.treeDevices->insertTopLevelItems(0, items); |
263 | if(w3 != 0) | 281 | if(w3 != 0) |
264 | ui.treeDevices->setCurrentItem(w3); // hilight old selection | 282 | ui.treeDevices->setCurrentItem(w3); // hilight old selection |
283 | |||
284 | // tts / encoder tab | ||
285 | QStringList keys; | ||
286 | |||
287 | devices->beginGroup("encoders"); | ||
288 | keys = devices->allKeys(); | ||
289 | for(int i=0; i < keys.size();i++) | ||
290 | ui.comboEncoder->addItem(devices->value(keys.at(i), "null").toString(), | ||
291 | keys.at(i)); | ||
292 | devices->endGroup(); | ||
293 | |||
294 | devices->beginGroup("tts"); | ||
295 | keys = devices->allKeys(); | ||
296 | for(int i=0; i < keys.size();i++) | ||
297 | ui.comboTts->addItem(devices->value(keys.at(i), "null").toString(), keys.at(i)); | ||
298 | devices->endGroup(); | ||
299 | |||
300 | int index; | ||
301 | index = ui.comboTts->findData(userSettings->value("ttspreset").toString(), | ||
302 | Qt::UserRole, Qt::MatchExactly); | ||
303 | ui.comboTts->setCurrentIndex(index); | ||
304 | updateTtsOpts(index); | ||
305 | ui.ttsExecutable->setText(userSettings->value("ttsbin").toString()); | ||
306 | |||
307 | index = ui.comboEncoder->findData(userSettings->value("encpreset").toString(), | ||
308 | Qt::UserRole, Qt::MatchExactly); | ||
309 | ui.comboEncoder->setCurrentIndex(index); | ||
310 | updateEncOpts(index); | ||
311 | ui.encoderExecutable->setText(userSettings->value("encbin").toString()); | ||
312 | |||
313 | } | ||
314 | |||
315 | |||
316 | void Config::updateEncOpts(int index) | ||
317 | { | ||
318 | qDebug() << "updateEncOpts()"; | ||
319 | QString c = ui.comboEncoder->itemData(index, Qt::UserRole).toString(); | ||
320 | devices->beginGroup(c); | ||
321 | ui.encoderOptions->setText(devices->value("options").toString()); | ||
322 | ui.encoderOptions->setEnabled(devices->value("edit").toBool()); | ||
323 | devices->endGroup(); | ||
324 | } | ||
325 | |||
326 | |||
327 | void Config::updateTtsOpts(int index) | ||
328 | { | ||
329 | QString c = ui.comboTts->itemData(index, Qt::UserRole).toString(); | ||
330 | devices->beginGroup(c); | ||
331 | qDebug() << devices->value("edit").toBool(); | ||
332 | ui.ttsOptions->setText(devices->value("options").toString()); | ||
333 | ui.ttsOptions->setEnabled(devices->value("edit").toBool()); | ||
334 | devices->endGroup(); | ||
265 | } | 335 | } |
266 | 336 | ||
267 | 337 | ||
@@ -466,3 +536,25 @@ void Config::cacheClear() | |||
466 | qDebug() << "removed:" << f; | 536 | qDebug() << "removed:" << f; |
467 | } | 537 | } |
468 | } | 538 | } |
539 | |||
540 | |||
541 | void Config::browseTts() | ||
542 | { | ||
543 | BrowseDirtree browser(this); | ||
544 | browser.setFilter(QDir::Dirs | QDir::Files | QDir::NoDotAndDotDot); | ||
545 | |||
546 | if(QFileInfo(ui.ttsExecutable->text()).isDir()) | ||
547 | { | ||
548 | QDir d(ui.ttsExecutable->text()); | ||
549 | browser.setDir(d); | ||
550 | } | ||
551 | if(browser.exec() == QDialog::Accepted) | ||
552 | { | ||
553 | qDebug() << browser.getSelected(); | ||
554 | QString exe = browser.getSelected(); | ||
555 | if(!QFileInfo(exe).isExecutable()) | ||
556 | return; | ||
557 | ui.ttsExecutable->setText(exe); | ||
558 | } | ||
559 | |||
560 | } | ||