Use selected language in selection dialog if any.

This commit is contained in:
Gres 2014-04-11 22:51:31 +04:00
parent 2cf927afb6
commit fbabb671e8
2 changed files with 7 additions and 6 deletions

View File

@ -31,12 +31,12 @@ void Recognizer::applySettings()
imageScale_ = settings.value (settings_names::imageScale, imageScale_ = settings.value (settings_names::imageScale,
settings_values::imageScale).toInt (); settings_values::imageScale).toInt ();
initEngine (engine_); initEngine (engine_, ocrLanguage_);
} }
bool Recognizer::initEngine(tesseract::TessBaseAPI *&engine) bool Recognizer::initEngine(tesseract::TessBaseAPI *&engine, const QString& language)
{ {
if (tessDataDir_.isEmpty () || ocrLanguage_.isEmpty ()) if (tessDataDir_.isEmpty () || language.isEmpty ())
{ {
emit error (tr ("Неверные параметры для OCR")); emit error (tr ("Неверные параметры для OCR"));
return false; return false;
@ -46,7 +46,7 @@ bool Recognizer::initEngine(tesseract::TessBaseAPI *&engine)
delete engine; delete engine;
} }
engine = new tesseract::TessBaseAPI(); engine = new tesseract::TessBaseAPI();
int result = engine->Init(qPrintable (tessDataDir_), qPrintable (ocrLanguage_), int result = engine->Init(qPrintable (tessDataDir_), qPrintable (language),
tesseract::OEM_DEFAULT); tesseract::OEM_DEFAULT);
if (result != 0) if (result != 0)
{ {
@ -66,7 +66,8 @@ void Recognizer::recognize(ProcessingItem item)
tesseract::TessBaseAPI* engine = (isCustomLanguage) ? NULL : engine_; tesseract::TessBaseAPI* engine = (isCustomLanguage) ? NULL : engine_;
if (engine == NULL) if (engine == NULL)
{ {
if (!initEngine (engine)) QString language = (isCustomLanguage) ? item.ocrLanguage : ocrLanguage_;
if (!initEngine (engine, language))
{ {
return; return;
} }

View File

@ -26,7 +26,7 @@ class Recognizer : public QObject
void applySettings (); void applySettings ();
private: private:
bool initEngine (tesseract::TessBaseAPI*&engine); bool initEngine (tesseract::TessBaseAPI*&engine, const QString &language);
private: private:
tesseract::TessBaseAPI* engine_; tesseract::TessBaseAPI* engine_;