summaryrefslogtreecommitdiff
path: root/rbutil/rbutilqt/configure.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'rbutil/rbutilqt/configure.cpp')
-rw-r--r--rbutil/rbutilqt/configure.cpp92
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
316void 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
327void 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
541void 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}