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_; 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 LanguageHelper::translateLanguagesUi() const
{ {
QStringList uiItems = translateLanguages_.keys (); QStringList uiItems = translateLanguages_.keys ();
@ -77,22 +106,12 @@ void LanguageHelper::init()
void LanguageHelper::updateAvailableOcrLanguages() void LanguageHelper::updateAvailableOcrLanguages()
{ {
availableOcrLanguages_.clear ();
QSettings settings; QSettings settings;
settings.beginGroup (settings_names::recogntionGroup); settings.beginGroup (settings_names::recogntionGroup);
QString tessDataPlace = settings.value (settings_names::tessDataPlace, QString tessDataPlace = settings.value (settings_names::tessDataPlace,
settings_values::tessDataPlace).toString (); settings_values::tessDataPlace).toString ();
QDir dir (tessDataPlace + "/tessdata/"); availableOcrLanguages_ = availableOcrLanguages (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;
}
} }
void LanguageHelper::initTranslateLanguages() void LanguageHelper::initTranslateLanguages()

View File

@ -11,6 +11,7 @@ class LanguageHelper
QStringList availableOcrLanguagesUi () const; QStringList availableOcrLanguagesUi () const;
const QStringList& availableOcrLanguages () const; const QStringList& availableOcrLanguages () const;
QStringList availableOcrLanguagesUi (const QString& path) const;
QStringList translateLanguagesUi () const; QStringList translateLanguagesUi () const;
QStringList translateLanguages () const; QStringList translateLanguages () const;
@ -23,6 +24,7 @@ class LanguageHelper
void updateAvailableOcrLanguages (); void updateAvailableOcrLanguages ();
private: private:
QStringList availableOcrLanguages (const QString& path) const;
void init (); void init ();
void initTranslateLanguages (); void initTranslateLanguages ();
void initOcrLanguages (); void initOcrLanguages ();

View File

@ -19,7 +19,7 @@ SettingsEditor::SettingsEditor(const LanguageHelper &dictionary, QWidget *parent
connect (ui->tessdataButton, SIGNAL (clicked ()), SLOT (openTessdataDialog ())); connect (ui->tessdataButton, SIGNAL (clicked ()), SLOT (openTessdataDialog ()));
connect (ui->tessdataEdit, SIGNAL (textChanged (const QString&)), connect (ui->tessdataEdit, SIGNAL (textChanged (const QString&)),
SLOT (initOcrLangCombo ())); SLOT (initOcrLangCombo (const QString&)));
ui->translateLangCombo->addItems (dictionary_.translateLanguagesUi ()); ui->translateLangCombo->addItems (dictionary_.translateLanguagesUi ());
loadSettings (); loadSettings ();
@ -126,8 +126,8 @@ void SettingsEditor::loadState()
restoreGeometry (settings.value (objectName () + "_" + settings_names::geometry).toByteArray ()); restoreGeometry (settings.value (objectName () + "_" + settings_names::geometry).toByteArray ());
} }
void SettingsEditor::initOcrLangCombo() void SettingsEditor::initOcrLangCombo(const QString &path)
{ {
ui->ocrLangCombo->clear (); 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: private slots:
void saveSettings () const; void saveSettings () const;
void openTessdataDialog (); void openTessdataDialog ();
void initOcrLangCombo (); void initOcrLangCombo (const QString& path);
private: private:
void loadSettings (); void loadSettings ();