Update languages on tessdata path edition.

This commit is contained in:
Gres 2014-04-04 19:01:04 +04:00
parent 6e85bfd7eb
commit 5c187eadf2
4 changed files with 37 additions and 16 deletions

View File

@ -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()

View File

@ -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 ();

View File

@ -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));
}

View File

@ -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 ();