Update languages on tessdata path edition.
This commit is contained in:
parent
6e85bfd7eb
commit
5c187eadf2
@ -25,6 +25,35 @@ const QStringList &LanguageHelper::availableOcrLanguages() const
|
||||
return availableOcrLanguages_;
|
||||
}
|
||||
|
||||
QStringList LanguageHelper::availableOcrLanguages(const QString &path) const
|
||||
{
|
||||
QDir dir (path + "/tessdata/");
|
||||
if (!dir.exists ())
|
||||
{
|
||||
return QStringList ();
|
||||
}
|
||||
QStringList items;
|
||||
QStringList files = dir.entryList (QStringList () << "*.traineddata", QDir::Files);
|
||||
foreach (const QString& file, files)
|
||||
{
|
||||
QString lang = file.left (file.indexOf ("."));
|
||||
items << lang;
|
||||
}
|
||||
return items;
|
||||
}
|
||||
|
||||
QStringList LanguageHelper::availableOcrLanguagesUi(const QString &path) const
|
||||
{
|
||||
QStringList uiItems, items;
|
||||
items = availableOcrLanguages (path);
|
||||
foreach (const QString& item, items)
|
||||
{
|
||||
uiItems << ocrCodeToUi (item);
|
||||
}
|
||||
uiItems.sort ();
|
||||
return uiItems;
|
||||
}
|
||||
|
||||
QStringList LanguageHelper::translateLanguagesUi() const
|
||||
{
|
||||
QStringList uiItems = translateLanguages_.keys ();
|
||||
@ -77,22 +106,12 @@ void LanguageHelper::init()
|
||||
|
||||
void LanguageHelper::updateAvailableOcrLanguages()
|
||||
{
|
||||
availableOcrLanguages_.clear ();
|
||||
QSettings settings;
|
||||
settings.beginGroup (settings_names::recogntionGroup);
|
||||
QString tessDataPlace = settings.value (settings_names::tessDataPlace,
|
||||
settings_values::tessDataPlace).toString ();
|
||||
QDir dir (tessDataPlace + "/tessdata/");
|
||||
if (!dir.exists ())
|
||||
{
|
||||
return;
|
||||
}
|
||||
availableOcrLanguages_.clear ();
|
||||
QStringList files = dir.entryList (QStringList () << "*.traineddata", QDir::Files);
|
||||
foreach (const QString& file, files)
|
||||
{
|
||||
QString lang = file.left (file.indexOf ("."));
|
||||
availableOcrLanguages_ << lang;
|
||||
}
|
||||
availableOcrLanguages_ = availableOcrLanguages (tessDataPlace + "/tessdata/");
|
||||
}
|
||||
|
||||
void LanguageHelper::initTranslateLanguages()
|
||||
|
@ -11,6 +11,7 @@ class LanguageHelper
|
||||
|
||||
QStringList availableOcrLanguagesUi () const;
|
||||
const QStringList& availableOcrLanguages () const;
|
||||
QStringList availableOcrLanguagesUi (const QString& path) const;
|
||||
QStringList translateLanguagesUi () const;
|
||||
QStringList translateLanguages () const;
|
||||
|
||||
@ -23,6 +24,7 @@ class LanguageHelper
|
||||
void updateAvailableOcrLanguages ();
|
||||
|
||||
private:
|
||||
QStringList availableOcrLanguages (const QString& path) const;
|
||||
void init ();
|
||||
void initTranslateLanguages ();
|
||||
void initOcrLanguages ();
|
||||
|
@ -19,7 +19,7 @@ SettingsEditor::SettingsEditor(const LanguageHelper &dictionary, QWidget *parent
|
||||
|
||||
connect (ui->tessdataButton, SIGNAL (clicked ()), SLOT (openTessdataDialog ()));
|
||||
connect (ui->tessdataEdit, SIGNAL (textChanged (const QString&)),
|
||||
SLOT (initOcrLangCombo ()));
|
||||
SLOT (initOcrLangCombo (const QString&)));
|
||||
|
||||
ui->translateLangCombo->addItems (dictionary_.translateLanguagesUi ());
|
||||
loadSettings ();
|
||||
@ -126,8 +126,8 @@ void SettingsEditor::loadState()
|
||||
restoreGeometry (settings.value (objectName () + "_" + settings_names::geometry).toByteArray ());
|
||||
}
|
||||
|
||||
void SettingsEditor::initOcrLangCombo()
|
||||
void SettingsEditor::initOcrLangCombo(const QString &path)
|
||||
{
|
||||
ui->ocrLangCombo->clear ();
|
||||
ui->ocrLangCombo->addItems (dictionary_.availableOcrLanguagesUi ());
|
||||
ui->ocrLangCombo->addItems (dictionary_.availableOcrLanguagesUi (path));
|
||||
}
|
||||
|
@ -27,7 +27,7 @@ class SettingsEditor : public QDialog
|
||||
private slots:
|
||||
void saveSettings () const;
|
||||
void openTessdataDialog ();
|
||||
void initOcrLangCombo ();
|
||||
void initOcrLangCombo (const QString& path);
|
||||
|
||||
private:
|
||||
void loadSettings ();
|
||||
|
Loading…
Reference in New Issue
Block a user