mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-11-22 03:22:48 -05:00
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
This commit is contained in:
parent
f2bf042edf
commit
c03102b346
12 changed files with 408 additions and 382 deletions
|
|
@ -68,6 +68,10 @@ Config::Config(QWidget *parent) : QDialog(parent)
|
|||
connect(ui.buttonAutodetect,SIGNAL(clicked()),this,SLOT(autodetect()));
|
||||
connect(ui.buttonCacheBrowse, SIGNAL(clicked()), this, SLOT(browseCache()));
|
||||
connect(ui.buttonCacheClear, SIGNAL(clicked()), this, SLOT(cacheClear()));
|
||||
connect(ui.browseTts, SIGNAL(clicked()), this, SLOT(browseTts()));
|
||||
connect(ui.comboEncoder, SIGNAL(currentIndexChanged(int)), this, SLOT(updateEncOpts(int)));
|
||||
connect(ui.comboTts, SIGNAL(currentIndexChanged(int)), this, SLOT(updateTtsOpts(int)));
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -119,6 +123,19 @@ void Config::accept()
|
|||
userSettings->setValue("defaults/cachedisable", ui.cacheDisable->isChecked());
|
||||
userSettings->setValue("defaults/offline", ui.cacheOfflineMode->isChecked());
|
||||
|
||||
// tts settings
|
||||
if(QFileInfo(ui.ttsExecutable->text()).isExecutable())
|
||||
userSettings->setValue("ttsbin", ui.ttsExecutable->text());
|
||||
userSettings->setValue("ttsopts", ui.ttsOptions->text());
|
||||
if(QFileInfo(ui.encoderExecutable->text()).isExecutable())
|
||||
userSettings->setValue("encbin", ui.encoderExecutable->text());
|
||||
userSettings->setValue("ttsopts", ui.ttsOptions->text());
|
||||
QString preset;
|
||||
preset = ui.comboEncoder->itemData(ui.comboEncoder->currentIndex(), Qt::UserRole).toString();
|
||||
userSettings->setValue("encpreset", preset);
|
||||
preset = ui.comboTts->itemData(ui.comboTts->currentIndex(), Qt::UserRole).toString();
|
||||
userSettings->setValue("ttspreset", preset);
|
||||
|
||||
// sync settings
|
||||
userSettings->sync();
|
||||
this->close();
|
||||
|
|
@ -186,6 +203,7 @@ void Config::setUserSettings(QSettings *user)
|
|||
}
|
||||
ui.cacheSize->setText(tr("Current cache size is %1 kiB.")
|
||||
.arg(sz/1024));
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -262,6 +280,58 @@ void Config::setDevices(QSettings *dev)
|
|||
ui.treeDevices->insertTopLevelItems(0, items);
|
||||
if(w3 != 0)
|
||||
ui.treeDevices->setCurrentItem(w3); // hilight old selection
|
||||
|
||||
// tts / encoder tab
|
||||
QStringList keys;
|
||||
|
||||
devices->beginGroup("encoders");
|
||||
keys = devices->allKeys();
|
||||
for(int i=0; i < keys.size();i++)
|
||||
ui.comboEncoder->addItem(devices->value(keys.at(i), "null").toString(),
|
||||
keys.at(i));
|
||||
devices->endGroup();
|
||||
|
||||
devices->beginGroup("tts");
|
||||
keys = devices->allKeys();
|
||||
for(int i=0; i < keys.size();i++)
|
||||
ui.comboTts->addItem(devices->value(keys.at(i), "null").toString(), keys.at(i));
|
||||
devices->endGroup();
|
||||
|
||||
int index;
|
||||
index = ui.comboTts->findData(userSettings->value("ttspreset").toString(),
|
||||
Qt::UserRole, Qt::MatchExactly);
|
||||
ui.comboTts->setCurrentIndex(index);
|
||||
updateTtsOpts(index);
|
||||
ui.ttsExecutable->setText(userSettings->value("ttsbin").toString());
|
||||
|
||||
index = ui.comboEncoder->findData(userSettings->value("encpreset").toString(),
|
||||
Qt::UserRole, Qt::MatchExactly);
|
||||
ui.comboEncoder->setCurrentIndex(index);
|
||||
updateEncOpts(index);
|
||||
ui.encoderExecutable->setText(userSettings->value("encbin").toString());
|
||||
|
||||
}
|
||||
|
||||
|
||||
void Config::updateEncOpts(int index)
|
||||
{
|
||||
qDebug() << "updateEncOpts()";
|
||||
QString c = ui.comboEncoder->itemData(index, Qt::UserRole).toString();
|
||||
devices->beginGroup(c);
|
||||
ui.encoderOptions->setText(devices->value("options").toString());
|
||||
ui.encoderOptions->setEnabled(devices->value("edit").toBool());
|
||||
devices->endGroup();
|
||||
}
|
||||
|
||||
|
||||
void Config::updateTtsOpts(int index)
|
||||
{
|
||||
QString c = ui.comboTts->itemData(index, Qt::UserRole).toString();
|
||||
devices->beginGroup(c);
|
||||
qDebug() << devices->value("edit").toBool();
|
||||
ui.ttsOptions->setText(devices->value("options").toString());
|
||||
ui.ttsOptions->setEnabled(devices->value("edit").toBool());
|
||||
devices->endGroup();
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -466,3 +536,25 @@ void Config::cacheClear()
|
|||
qDebug() << "removed:" << f;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void Config::browseTts()
|
||||
{
|
||||
BrowseDirtree browser(this);
|
||||
browser.setFilter(QDir::Dirs | QDir::Files | QDir::NoDotAndDotDot);
|
||||
|
||||
if(QFileInfo(ui.ttsExecutable->text()).isDir())
|
||||
{
|
||||
QDir d(ui.ttsExecutable->text());
|
||||
browser.setDir(d);
|
||||
}
|
||||
if(browser.exec() == QDialog::Accepted)
|
||||
{
|
||||
qDebug() << browser.getSelected();
|
||||
QString exe = browser.getSelected();
|
||||
if(!QFileInfo(exe).isExecutable())
|
||||
return;
|
||||
ui.ttsExecutable->setText(exe);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue