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_;
|
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()
|
||||||
|
@ -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 ();
|
||||||
|
@ -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));
|
||||||
}
|
}
|
||||||
|
@ -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 ();
|
||||||
|
Loading…
Reference in New Issue
Block a user