forked from len0rd/rockbox
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);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -63,6 +63,9 @@ class Config : public QDialog
|
|||
void setMountpoint(QString);
|
||||
void setCache(QString);
|
||||
void cacheClear(void);
|
||||
void browseTts(void);
|
||||
void updateTtsOpts(int);
|
||||
void updateEncOpts(int);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>500</width>
|
||||
<height>400</height>
|
||||
<height>435</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle" >
|
||||
|
@ -20,39 +20,6 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0" >
|
||||
<spacer>
|
||||
<property name="orientation" >
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" >
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="2" column="1" >
|
||||
<widget class="QPushButton" name="buttonOk" >
|
||||
<property name="text" >
|
||||
<string>&Ok</string>
|
||||
</property>
|
||||
<property name="icon" >
|
||||
<iconset resource="rbutilqt.qrc" >:/icons/icons/go-next.png</iconset>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="2" >
|
||||
<widget class="QPushButton" name="buttonCancel" >
|
||||
<property name="text" >
|
||||
<string>&Cancel</string>
|
||||
</property>
|
||||
<property name="icon" >
|
||||
<iconset resource="rbutilqt.qrc" >:/icons/icons/process-stop.png</iconset>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0" colspan="3" >
|
||||
<widget class="QTabWidget" name="tabConfiguration" >
|
||||
<property name="currentIndex" >
|
||||
|
@ -319,7 +286,7 @@
|
|||
<string>&Browse</string>
|
||||
</property>
|
||||
<property name="icon" >
|
||||
<iconset resource="rbutilqt.qrc" >:/icons/icons/system-search.png</iconset>
|
||||
<iconset resource="rbutilqt.qrc" >:/icons/icons/edit-find.png</iconset>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
@ -384,6 +351,178 @@
|
|||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="tabTts" >
|
||||
<attribute name="title" >
|
||||
<string>&TTS && Encoder</string>
|
||||
</attribute>
|
||||
<attribute name="icon" >
|
||||
<iconset resource="rbutilqt.qrc" >:/icons/icons/audio-input-microphone.png</iconset>
|
||||
</attribute>
|
||||
<layout class="QGridLayout" >
|
||||
<item row="0" column="0" colspan="2" >
|
||||
<widget class="QGroupBox" name="groupBox_2" >
|
||||
<property name="title" >
|
||||
<string>TTS Engine</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" >
|
||||
<item row="0" column="0" >
|
||||
<widget class="QLabel" name="labelTts" >
|
||||
<property name="text" >
|
||||
<string>&Select TTS profile</string>
|
||||
</property>
|
||||
<property name="buddy" >
|
||||
<cstring>comboTts</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1" colspan="2" >
|
||||
<widget class="QComboBox" name="comboTts" />
|
||||
</item>
|
||||
<item row="1" column="0" >
|
||||
<widget class="QLabel" name="labelTtsExecutable" >
|
||||
<property name="text" >
|
||||
<string>TTS executable</string>
|
||||
</property>
|
||||
<property name="buddy" >
|
||||
<cstring>ttsExecutable</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1" >
|
||||
<widget class="QLineEdit" name="ttsExecutable" />
|
||||
</item>
|
||||
<item row="1" column="2" >
|
||||
<widget class="QPushButton" name="browseTts" >
|
||||
<property name="text" >
|
||||
<string>&Browse</string>
|
||||
</property>
|
||||
<property name="icon" >
|
||||
<iconset resource="rbutilqt.qrc" >:/icons/icons/edit-find.png</iconset>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0" >
|
||||
<widget class="QLabel" name="labelTtsOptions" >
|
||||
<property name="text" >
|
||||
<string>TTS Options</string>
|
||||
</property>
|
||||
<property name="buddy" >
|
||||
<cstring>ttsOptions</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1" colspan="2" >
|
||||
<widget class="QLineEdit" name="ttsOptions" />
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item rowspan="2" row="1" column="0" colspan="2" >
|
||||
<widget class="QGroupBox" name="groupBox_3" >
|
||||
<property name="title" >
|
||||
<string>Encoder Engine</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" >
|
||||
<item row="0" column="0" >
|
||||
<widget class="QLabel" name="labelEncoder" >
|
||||
<property name="text" >
|
||||
<string>Select &encoder profile</string>
|
||||
</property>
|
||||
<property name="buddy" >
|
||||
<cstring>comboEncoder</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1" colspan="2" >
|
||||
<widget class="QComboBox" name="comboEncoder" />
|
||||
</item>
|
||||
<item row="1" column="0" >
|
||||
<widget class="QLabel" name="labelEncoderExecutable" >
|
||||
<property name="text" >
|
||||
<string>Encoder executable</string>
|
||||
</property>
|
||||
<property name="buddy" >
|
||||
<cstring>encoderExecutable</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1" >
|
||||
<widget class="QLineEdit" name="encoderExecutable" />
|
||||
</item>
|
||||
<item row="1" column="2" >
|
||||
<widget class="QPushButton" name="browseEncoder" >
|
||||
<property name="text" >
|
||||
<string>B&rowse</string>
|
||||
</property>
|
||||
<property name="icon" >
|
||||
<iconset resource="rbutilqt.qrc" >:/icons/icons/edit-find.png</iconset>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0" >
|
||||
<widget class="QLabel" name="labelEncoderOptions" >
|
||||
<property name="text" >
|
||||
<string>Encoder options</string>
|
||||
</property>
|
||||
<property name="buddy" >
|
||||
<cstring>encoderOptions</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1" colspan="2" >
|
||||
<widget class="QLineEdit" name="encoderOptions" />
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0" >
|
||||
<spacer>
|
||||
<property name="orientation" >
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" >
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0" >
|
||||
<spacer>
|
||||
<property name="orientation" >
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" >
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="2" column="1" >
|
||||
<widget class="QPushButton" name="buttonOk" >
|
||||
<property name="text" >
|
||||
<string>&Ok</string>
|
||||
</property>
|
||||
<property name="icon" >
|
||||
<iconset resource="rbutilqt.qrc" >:/icons/icons/go-next.png</iconset>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="2" >
|
||||
<widget class="QPushButton" name="buttonCancel" >
|
||||
<property name="text" >
|
||||
<string>&Cancel</string>
|
||||
</property>
|
||||
<property name="icon" >
|
||||
<iconset resource="rbutilqt.qrc" >:/icons/icons/process-stop.png</iconset>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
|
|
BIN
rbutil/rbutilqt/icons/audio-input-microphone.png
Normal file
BIN
rbutil/rbutilqt/icons/audio-input-microphone.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 703 B |
|
@ -8,15 +8,15 @@
|
|||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>681</width>
|
||||
<height>516</height>
|
||||
<width>600</width>
|
||||
<height>450</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle" >
|
||||
<string>Install Talk Files</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" >
|
||||
<item rowspan="5" row="0" column="0" >
|
||||
<item rowspan="6" row="0" column="0" >
|
||||
<widget class="QLabel" name="label" >
|
||||
<property name="text" >
|
||||
<string/>
|
||||
|
@ -29,17 +29,17 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1" colspan="5" >
|
||||
<item row="0" column="1" colspan="3" >
|
||||
<widget class="QLabel" name="label_2" >
|
||||
<property name="text" >
|
||||
<string>Select the Folder to generate Talkfiles for.</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1" colspan="4" >
|
||||
<item row="1" column="1" colspan="2" >
|
||||
<widget class="QLineEdit" name="lineTalkFolder" />
|
||||
</item>
|
||||
<item row="1" column="5" >
|
||||
<item row="1" column="3" >
|
||||
<widget class="QPushButton" name="buttonBrowse" >
|
||||
<property name="text" >
|
||||
<string>&Browse</string>
|
||||
|
@ -49,134 +49,74 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1" colspan="5" >
|
||||
<widget class="QGroupBox" name="groupBox" >
|
||||
<property name="title" >
|
||||
<string>TTS Engine</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" >
|
||||
<item row="0" column="0" colspan="2" >
|
||||
<widget class="QLabel" name="label_3" >
|
||||
<property name="text" >
|
||||
<string>Select a TTS Engine</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0" colspan="2" >
|
||||
<widget class="QComboBox" name="TTScbx" />
|
||||
</item>
|
||||
<item row="2" column="0" colspan="2" >
|
||||
<widget class="QLabel" name="label_4" >
|
||||
<property name="text" >
|
||||
<string>Select the TTS executable in your Filesystem</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0" >
|
||||
<widget class="QLineEdit" name="TTSpath" />
|
||||
</item>
|
||||
<item row="3" column="1" >
|
||||
<widget class="QPushButton" name="buttonBrowseTTS" >
|
||||
<property name="text" >
|
||||
<string>Browse</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0" >
|
||||
<widget class="QLabel" name="label_7" >
|
||||
<property name="text" >
|
||||
<string>TTS Options</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0" colspan="2" >
|
||||
<widget class="QLineEdit" name="TTSOptions" />
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1" colspan="5" >
|
||||
<item row="2" column="1" colspan="3" >
|
||||
<widget class="QGroupBox" name="groupBox_2" >
|
||||
<property name="title" >
|
||||
<string>Encoder Engine</string>
|
||||
<string>Generation settings</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" >
|
||||
<item row="0" column="0" colspan="2" >
|
||||
<widget class="QLabel" name="label_5" >
|
||||
<item row="0" column="0" >
|
||||
<widget class="QLabel" name="labelEncProfile" >
|
||||
<property name="text" >
|
||||
<string>Select an Encoder</string>
|
||||
<string>Encoder profile:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0" colspan="2" >
|
||||
<widget class="QComboBox" name="Encodercbx" />
|
||||
</item>
|
||||
<item row="2" column="0" colspan="2" >
|
||||
<widget class="QLabel" name="label_6" >
|
||||
<item row="1" column="0" >
|
||||
<widget class="QLabel" name="labelTtsProfile" >
|
||||
<property name="text" >
|
||||
<string>Select the Encoder executable in your Filesystem</string>
|
||||
<string>TTS profile:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0" >
|
||||
<widget class="QLineEdit" name="Encoderpath" />
|
||||
</item>
|
||||
<item row="3" column="1" >
|
||||
<widget class="QPushButton" name="buttonBrowseEncoder" >
|
||||
<property name="text" >
|
||||
<string>Browse</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0" >
|
||||
<widget class="QLabel" name="label_8" >
|
||||
<property name="text" >
|
||||
<string>Encoder Options</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0" colspan="2" >
|
||||
<widget class="QLineEdit" name="EncoderOptions" />
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="1" >
|
||||
<widget class="QCheckBox" name="OverwriteWav" >
|
||||
<property name="text" >
|
||||
<string>Overwrite Wavefiles</string>
|
||||
<item row="3" column="1" colspan="3" >
|
||||
<widget class="QGroupBox" name="groupBox" >
|
||||
<property name="title" >
|
||||
<string>Generation options</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" >
|
||||
<item row="0" column="0" >
|
||||
<widget class="QCheckBox" name="OverwriteWav" >
|
||||
<property name="text" >
|
||||
<string>Overwrite Wavefiles</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0" >
|
||||
<widget class="QCheckBox" name="RemoveWav" >
|
||||
<property name="text" >
|
||||
<string>Remove Wavefiles</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0" >
|
||||
<widget class="QCheckBox" name="recursive" >
|
||||
<property name="text" >
|
||||
<string>Run recursive</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0" >
|
||||
<widget class="QCheckBox" name="StripExtensions" >
|
||||
<property name="text" >
|
||||
<string>Strip Extensions</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0" >
|
||||
<widget class="QCheckBox" name="OverwriteTalk" >
|
||||
<property name="text" >
|
||||
<string>Overwrite Talkfiles</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="2" >
|
||||
<widget class="QCheckBox" name="RemoveWav" >
|
||||
<property name="text" >
|
||||
<string>Remove Wavefiles</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="3" colspan="2" >
|
||||
<widget class="QCheckBox" name="recursive" >
|
||||
<property name="text" >
|
||||
<string>Run recursive</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="1" >
|
||||
<widget class="QCheckBox" name="OverwriteTalk" >
|
||||
<property name="text" >
|
||||
<string>Overwrite Talkfiles</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="2" >
|
||||
<widget class="QCheckBox" name="StripExtensions" >
|
||||
<property name="text" >
|
||||
<string>Strip Extensions</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="4" >
|
||||
<spacer>
|
||||
<property name="orientation" >
|
||||
<enum>Qt::Vertical</enum>
|
||||
|
@ -184,12 +124,12 @@
|
|||
<property name="sizeHint" >
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>111</height>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="6" column="1" colspan="3" >
|
||||
<item row="5" column="1" >
|
||||
<spacer>
|
||||
<property name="orientation" >
|
||||
<enum>Qt::Horizontal</enum>
|
||||
|
@ -202,7 +142,7 @@
|
|||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="6" column="4" colspan="2" >
|
||||
<item row="5" column="2" colspan="2" >
|
||||
<layout class="QHBoxLayout" >
|
||||
<item>
|
||||
<widget class="QPushButton" name="buttonOk" >
|
||||
|
|
|
@ -28,19 +28,12 @@ InstallTalkWindow::InstallTalkWindow(QWidget *parent) : QDialog(parent)
|
|||
talkcreator = new TalkFileCreator(this);
|
||||
|
||||
connect(ui.buttonBrowse, SIGNAL(clicked()), this, SLOT(browseFolder()));
|
||||
connect(ui.buttonBrowseTTS, SIGNAL(clicked()), this, SLOT(browseTTS()));
|
||||
connect(ui.buttonBrowseEncoder, SIGNAL(clicked()), this, SLOT(browseEncoder()));
|
||||
|
||||
connect(ui.Encodercbx,SIGNAL(currentIndexChanged(int)),this,SLOT(setEncoderOptions(int)));
|
||||
connect(ui.TTScbx,SIGNAL(currentIndexChanged(int)),this,SLOT(setTTSOptions(int)));
|
||||
|
||||
|
||||
ui.OverwriteWav->setChecked(true);
|
||||
ui.RemoveWav->setChecked(true);
|
||||
ui.recursive->setChecked(true);
|
||||
ui.OverwriteTalk->setChecked(true);
|
||||
ui.StripExtensions->setChecked(true);
|
||||
|
||||
|
||||
}
|
||||
|
||||
void InstallTalkWindow::browseFolder()
|
||||
|
@ -67,87 +60,9 @@ void InstallTalkWindow::browseFolder()
|
|||
|
||||
void InstallTalkWindow::setTalkFolder(QString folder)
|
||||
{
|
||||
ui.lineTalkFolder->clear();
|
||||
ui.lineTalkFolder->insert(folder);
|
||||
ui.lineTalkFolder->setText(folder);
|
||||
}
|
||||
|
||||
void InstallTalkWindow::browseTTS()
|
||||
{
|
||||
BrowseDirtree browser(this);
|
||||
browser.setFilter(QDir::Dirs | QDir::Files | QDir::NoDotAndDotDot);
|
||||
|
||||
if(QFileInfo(ui.TTSpath->text()).isDir())
|
||||
{
|
||||
QDir d(ui.TTSpath->text());
|
||||
browser.setDir(d);
|
||||
}
|
||||
else
|
||||
{
|
||||
QDir d("/media");
|
||||
browser.setDir(d);
|
||||
}
|
||||
if(browser.exec() == QDialog::Accepted)
|
||||
{
|
||||
qDebug() << browser.getSelected();
|
||||
setTTSExec(browser.getSelected());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void InstallTalkWindow::setTTSExec(QString path)
|
||||
{
|
||||
ui.TTSpath->clear();
|
||||
ui.TTSpath->insert(path);
|
||||
}
|
||||
|
||||
void InstallTalkWindow::browseEncoder()
|
||||
{
|
||||
BrowseDirtree browser(this);
|
||||
browser.setFilter(QDir::Dirs | QDir::Files | QDir::NoDotAndDotDot);
|
||||
|
||||
if(QFileInfo(ui.Encoderpath->text()).isDir())
|
||||
{
|
||||
QDir d(ui.Encoderpath->text());
|
||||
browser.setDir(d);
|
||||
}
|
||||
else
|
||||
{
|
||||
QDir d("/media");
|
||||
browser.setDir(d);
|
||||
}
|
||||
if(browser.exec() == QDialog::Accepted)
|
||||
{
|
||||
qDebug() << browser.getSelected();
|
||||
setEncoderExec(browser.getSelected());
|
||||
}
|
||||
}
|
||||
|
||||
void InstallTalkWindow::setEncoderExec(QString path)
|
||||
{
|
||||
ui.Encoderpath->clear();
|
||||
ui.Encoderpath->insert(path);
|
||||
}
|
||||
|
||||
void InstallTalkWindow::setEncoderOptions(int index)
|
||||
{
|
||||
QString options = talkcreator->getEncOpts(ui.Encodercbx->itemText(index));
|
||||
setEncoderOptions(options);
|
||||
}
|
||||
void InstallTalkWindow::setEncoderOptions(QString options)
|
||||
{
|
||||
ui.EncoderOptions->clear();
|
||||
ui.EncoderOptions->insert(options);
|
||||
}
|
||||
void InstallTalkWindow::setTTSOptions(QString options)
|
||||
{
|
||||
ui.TTSOptions->clear();
|
||||
ui.TTSOptions->insert(options);
|
||||
}
|
||||
void InstallTalkWindow::setTTSOptions(int index)
|
||||
{
|
||||
QString options = talkcreator->getTTsOpts(ui.TTScbx->itemText(index));
|
||||
setEncoderOptions(options);
|
||||
}
|
||||
|
||||
void InstallTalkWindow::accept()
|
||||
{
|
||||
|
@ -155,8 +70,8 @@ void InstallTalkWindow::accept()
|
|||
logger->show();
|
||||
|
||||
QString folderToTalk = ui.lineTalkFolder->text();
|
||||
QString pathEncoder = ui.Encoderpath->text();
|
||||
QString pathTTS = ui.TTSpath->text();
|
||||
QString pathEncoder = userSettings->value("encbin").toString();
|
||||
QString pathTTS = userSettings->value("ttsbin").toString();
|
||||
|
||||
if(!QFileInfo(folderToTalk).isDir())
|
||||
{
|
||||
|
@ -165,33 +80,40 @@ void InstallTalkWindow::accept()
|
|||
return;
|
||||
}
|
||||
|
||||
if(!QFileInfo(pathEncoder).exists())
|
||||
if(!QFileInfo(pathEncoder).isExecutable())
|
||||
{
|
||||
logger->addItem(tr("Path to Encoder is wrong!"),LOGERROR);
|
||||
logger->abort();
|
||||
return;
|
||||
}
|
||||
|
||||
if(!QFileInfo(pathTTS).exists())
|
||||
if(!QFileInfo(pathTTS).isExecutable())
|
||||
{
|
||||
logger->addItem(tr("Path to TTS is wrong!"),LOGERROR);
|
||||
logger->abort();
|
||||
return;
|
||||
}
|
||||
|
||||
userSettings->setValue("defaults/folderToTalk",folderToTalk);
|
||||
userSettings->setValue("defaults/pathEncoder",pathEncoder);
|
||||
userSettings->setValue("defaults/pathTTS",pathTTS);
|
||||
userSettings->setValue("last_talked_folder", folderToTalk);
|
||||
|
||||
userSettings->sync();
|
||||
|
||||
|
||||
talkcreator->setDir(folderToTalk);
|
||||
talkcreator->setTTSexe(pathTTS);
|
||||
talkcreator->setEncexe(pathEncoder);
|
||||
talkcreator->setEncOpts(ui.EncoderOptions->text());
|
||||
talkcreator->setTTsOpts(ui.TTSOptions->text());
|
||||
talkcreator->setTTsType(ui.TTScbx->currentText());
|
||||
talkcreator->setEncType(ui.Encodercbx->currentText());
|
||||
talkcreator->setEncOpts(userSettings->value("encopts").toString());
|
||||
talkcreator->setTTsOpts(userSettings->value("ttsopts").toString());
|
||||
|
||||
devices->beginGroup(userSettings->value("ttspreset").toString());
|
||||
talkcreator->setTTsType(devices->value("tts").toString());
|
||||
talkcreator->setTTsOpts(devices->value("options").toString());
|
||||
talkcreator->setTTsTemplate(devices->value("template").toString());
|
||||
devices->endGroup();
|
||||
devices->beginGroup(userSettings->value("encpreset").toString());
|
||||
talkcreator->setEncType(devices->value("encoder").toString());
|
||||
talkcreator->setEncOpts(devices->value("options").toString());
|
||||
talkcreator->setEncTemplate(devices->value("template").toString());
|
||||
devices->endGroup();
|
||||
|
||||
talkcreator->setOverwriteTalk(ui.OverwriteTalk->isChecked());
|
||||
talkcreator->setOverwriteWav(ui.OverwriteWav->isChecked());
|
||||
|
@ -200,7 +122,7 @@ void InstallTalkWindow::accept()
|
|||
talkcreator->setStripExtensions(ui.StripExtensions->isChecked());
|
||||
|
||||
talkcreator->createTalkFiles(logger);
|
||||
connect(logger,SIGNAL(closed()),this,SLOT(close()));
|
||||
connect(logger,SIGNAL(closed()),this,SLOT(close()));
|
||||
}
|
||||
|
||||
|
||||
|
@ -208,64 +130,21 @@ void InstallTalkWindow::setDeviceSettings(QSettings *dev)
|
|||
{
|
||||
devices = dev;
|
||||
qDebug() << "Install::setDeviceSettings:" << devices;
|
||||
|
||||
QStringList encoders;
|
||||
QStringList encodersOpts;
|
||||
QStringList encodersTemplates;
|
||||
|
||||
QStringList tts;
|
||||
QStringList ttsOpts;
|
||||
QStringList ttsTemplates;
|
||||
|
||||
devices->beginGroup("encoders");
|
||||
QStringList keys = devices->allKeys();
|
||||
qDebug() << keys;
|
||||
for(int i=0; i < keys.size();i++)
|
||||
{
|
||||
encoders << devices->value(keys.at(i),"null").toString();
|
||||
}
|
||||
qDebug() << encoders;
|
||||
devices->endGroup();
|
||||
for(int i=0; i < encoders.size();i++)
|
||||
{
|
||||
devices->beginGroup(encoders.at(i));
|
||||
encodersOpts << devices->value("options","null").toString();
|
||||
encodersTemplates << devices->value("template","null").toString();
|
||||
devices->endGroup();
|
||||
}
|
||||
qDebug() << encodersOpts;
|
||||
qDebug() << encodersTemplates;
|
||||
QString profile;
|
||||
|
||||
profile = userSettings->value("ttspreset").toString();
|
||||
devices->beginGroup("tts");
|
||||
keys = devices->allKeys();
|
||||
qDebug() << keys;
|
||||
for(int i=0; i < keys.size();i++)
|
||||
{
|
||||
tts << devices->value(keys.at(i),"null").toString();
|
||||
}
|
||||
qDebug() << tts;
|
||||
ui.labelTtsProfile->setText(tr("TTS Profile: <b>%1</b>")
|
||||
.arg(devices->value(profile, tr("Invalid TTS profile!")).toString()));
|
||||
qDebug() << profile;
|
||||
devices->endGroup();
|
||||
profile = userSettings->value("encpreset").toString();
|
||||
devices->beginGroup("encoders");
|
||||
ui.labelEncProfile->setText(tr("Encoder Profile: <b>%1</b>")
|
||||
.arg(devices->value(profile, tr("Invalid encoder profile!")).toString()));
|
||||
qDebug() << profile;
|
||||
devices->endGroup();
|
||||
for(int i= 0; i < tts.size();i++)
|
||||
{
|
||||
devices->beginGroup(tts.at(i));
|
||||
ttsOpts << devices->value("options","null").toString();
|
||||
ttsTemplates << devices->value("template","null").toString();
|
||||
devices->endGroup();
|
||||
}
|
||||
qDebug() << ttsOpts;
|
||||
qDebug() << ttsTemplates;
|
||||
|
||||
talkcreator->setSupportedEnc(encoders);
|
||||
talkcreator->setSupportedEncOptions(encodersOpts);
|
||||
talkcreator->setSupportedEncTemplates(encodersTemplates);
|
||||
|
||||
talkcreator->setSupportedTTS(tts);
|
||||
talkcreator->setSupportedTTSOptions(ttsOpts);
|
||||
talkcreator->setSupportedTTSTemplates(ttsTemplates);
|
||||
|
||||
ui.Encodercbx->insertItems(0,talkcreator->getSupportedEnc());
|
||||
ui.TTScbx->insertItems(0,talkcreator->getSupportedTTS());
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
@ -277,7 +156,6 @@ void InstallTalkWindow::setUserSettings(QSettings *user)
|
|||
|
||||
talkcreator->setMountPoint(userSettings->value("defaults/mountpoint").toString());
|
||||
|
||||
setTalkFolder(userSettings->value("defaults/folderToTalk").toString());
|
||||
setEncoderExec(userSettings->value("defaults/pathEncoder").toString());
|
||||
setTTSExec(userSettings->value("defaults/pathTTS").toString());
|
||||
setTalkFolder(userSettings->value("last_talked_folder").toString());
|
||||
|
||||
}
|
||||
|
|
|
@ -32,7 +32,7 @@ class InstallTalkWindow : public QDialog
|
|||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
InstallTalkWindow(QWidget *parent = 0);
|
||||
InstallTalkWindow(QWidget *parent = 0);
|
||||
void setUserSettings(QSettings*);
|
||||
void setDeviceSettings(QSettings*);
|
||||
|
||||
|
@ -40,21 +40,11 @@ class InstallTalkWindow : public QDialog
|
|||
void accept(void);
|
||||
|
||||
private slots:
|
||||
void browseFolder(void);
|
||||
void browseTTS(void);
|
||||
void browseEncoder(void);
|
||||
|
||||
void setTalkFolder(QString folder);
|
||||
void setTTSExec(QString path);
|
||||
void setEncoderExec(QString path);
|
||||
|
||||
void setEncoderOptions(int index);
|
||||
void setTTSOptions(int index);
|
||||
void setEncoderOptions(QString options);
|
||||
void setTTSOptions(QString options);
|
||||
|
||||
void browseFolder(void);
|
||||
void setTalkFolder(QString folder);
|
||||
|
||||
private:
|
||||
TalkFileCreator* talkcreator;
|
||||
TalkFileCreator* talkcreator;
|
||||
Ui::InstallTalkFrm ui;
|
||||
ProgressLoggerGui* logger;
|
||||
QSettings *devices;
|
||||
|
@ -62,5 +52,4 @@ class InstallTalkWindow : public QDialog
|
|||
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
|
|
|
@ -47,7 +47,7 @@ public:
|
|||
void setUnzip(bool i) { m_unzip = i; }
|
||||
void setTarget(QString t) { m_target = t; }
|
||||
void setCache(QDir c) { m_cache = c; };
|
||||
void setCache(QString c) { m_cache = QDir(c); qDebug() << "!!!set cache:" << m_cache;}
|
||||
void setCache(QString c) { m_cache = QDir(c);}
|
||||
|
||||
signals:
|
||||
void done(bool error);
|
||||
|
|
|
@ -342,21 +342,47 @@ manualname=
|
|||
brand=Sandisk
|
||||
|
||||
[encoders]
|
||||
encoder01 = lame
|
||||
encpreset01 = "Lame (default)"
|
||||
encpreset02 = "Lame (user-adjusted)"
|
||||
|
||||
[tts]
|
||||
tts01 = espeak
|
||||
tts02 = flite
|
||||
|
||||
[lame]
|
||||
[encpreset01]
|
||||
encoder = lame
|
||||
options = ""
|
||||
template = "\"%exe\" %options \"%input\" \"%output\""
|
||||
|
||||
[espeak]
|
||||
edit = false
|
||||
|
||||
[encpreset02]
|
||||
encoder = lame
|
||||
options = ""
|
||||
template = "\"%exe\" %options \"%input\" \"%output\""
|
||||
edit = true
|
||||
|
||||
[tts]
|
||||
ttspreset01 = "espeak (default)"
|
||||
ttspreset02 = "espeak (user-adjusted)"
|
||||
ttspreset03 = "flite (default)"
|
||||
ttspreset04 = "flite (user-adjusted)"
|
||||
|
||||
[ttspreset01]
|
||||
tts = "espeak"
|
||||
options = ""
|
||||
template = "\"%exe\" %options -w \"%wavfile\" \"%text\""
|
||||
edit = false
|
||||
|
||||
[flite]
|
||||
[ttspreset02]
|
||||
tts = "espeak"
|
||||
options = ""
|
||||
template = "\"%exe\" %options -w \"%wavfile\" \"%text\""
|
||||
edit = true
|
||||
|
||||
[ttspreset03]
|
||||
tts = "flite"
|
||||
options = ""
|
||||
template = "\"%exe\" %options -o \"%wavfile\" \"%text\""
|
||||
edit = false
|
||||
|
||||
[ttspreset04]
|
||||
tts = "flite"
|
||||
options = ""
|
||||
template = "\"%exe\" %options -o \"%wavfile\" \"%text\""
|
||||
edit = true
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
<file>gpl-2.0.html</file>
|
||||
</qresource>
|
||||
<qresource prefix="/icons" >
|
||||
<file>icons/audio-input-microphone.png</file>
|
||||
<file>icons/bootloader_btn.png</file>
|
||||
<file>icons/dialog-error.png</file>
|
||||
<file>icons/dialog-information.png</file>
|
||||
|
|
|
@ -24,19 +24,6 @@ TalkFileCreator::TalkFileCreator(QObject* parent): QObject(parent)
|
|||
|
||||
}
|
||||
|
||||
void TalkFileCreator::setTTsType(QString tts)
|
||||
{
|
||||
m_curTTS = tts;
|
||||
int index = m_supportedTTS.indexOf(m_curTTS);
|
||||
m_curTTSTemplate = m_supportedTTSTemplates.at(index);
|
||||
}
|
||||
|
||||
void TalkFileCreator::setEncType(QString enc)
|
||||
{
|
||||
m_curEnc = enc;
|
||||
int index = m_supportedEnc.indexOf(m_curEnc);
|
||||
m_curEncTemplate = m_supportedEncTemplates.at(index);
|
||||
}
|
||||
|
||||
bool TalkFileCreator::initEncoder()
|
||||
{
|
||||
|
@ -203,17 +190,4 @@ bool TalkFileCreator::encode(QString input,QString output)
|
|||
|
||||
}
|
||||
|
||||
QString TalkFileCreator::getTTsOpts(QString ttsname)
|
||||
{
|
||||
int index = m_supportedTTS.indexOf(ttsname);
|
||||
|
||||
return m_supportedTTSOpts.at(index);
|
||||
}
|
||||
|
||||
QString TalkFileCreator::getEncOpts(QString encname)
|
||||
{
|
||||
int index = m_supportedEnc.indexOf(encname);
|
||||
|
||||
return m_supportedEncOpts.at(index);
|
||||
}
|
||||
|
||||
|
|
|
@ -35,23 +35,13 @@ public:
|
|||
void setTTSexe(QString exe){m_TTSexec=exe;}
|
||||
void setEncexe(QString exe){m_EncExec=exe;}
|
||||
|
||||
void setSupportedTTS(QStringList list) {m_supportedTTS=list;}
|
||||
void setSupportedTTSOptions(QStringList list) {m_supportedTTSOpts=list;}
|
||||
void setSupportedTTSTemplates(QStringList list) {m_supportedTTSTemplates=list;}
|
||||
|
||||
QStringList getSupportedTTS(){return m_supportedTTS;}
|
||||
void setTTsType(QString tts);
|
||||
QString getTTsOpts(QString ttsname);
|
||||
void setTTsType(QString tts) { m_curTTS = tts; }
|
||||
void setTTsOpts(QString opts) {m_TTSOpts=opts;}
|
||||
|
||||
void setSupportedEnc(QStringList list) {m_supportedEnc=list;}
|
||||
void setSupportedEncOptions(QStringList list) {m_supportedEncOpts=list;}
|
||||
void setSupportedEncTemplates(QStringList list) {m_supportedEncTemplates=list;}
|
||||
void setTTsTemplate(QString t) { m_curTTSTemplate = t; }
|
||||
|
||||
QStringList getSupportedEnc(){return m_supportedEnc;}
|
||||
void setEncType(QString enc);
|
||||
QString getEncOpts(QString encname);
|
||||
void setEncType(QString enc) { m_curEnc = enc; }
|
||||
void setEncOpts(QString opts) {m_EncOpts=opts;}
|
||||
void setEncTemplate(QString t) { m_curEncTemplate = t; }
|
||||
|
||||
void setDir(QString dir){m_dir = dir; }
|
||||
void setMountPoint(QString mountpoint) {m_mountpoint =mountpoint; }
|
||||
|
@ -78,17 +68,11 @@ private:
|
|||
QString m_mountpoint;
|
||||
QString m_curTTS;
|
||||
QString m_TTSexec;
|
||||
QStringList m_supportedTTS;
|
||||
QStringList m_supportedTTSOpts;
|
||||
QStringList m_supportedTTSTemplates;
|
||||
QString m_TTSOpts;
|
||||
QString m_curTTSTemplate;
|
||||
|
||||
QString m_curEnc;
|
||||
QString m_EncExec;
|
||||
QStringList m_supportedEnc;
|
||||
QStringList m_supportedEncOpts;
|
||||
QStringList m_supportedEncTemplates;
|
||||
QString m_EncOpts;
|
||||
QString m_curEncTemplate;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue