From bf6eea7f8e8aa28e83a22a867b6485476edf9f75 Mon Sep 17 00:00:00 2001 From: Gres Date: Tue, 29 Sep 2015 15:30:04 +0300 Subject: [PATCH] Added only OCR mode (without translation). --- Manager.cpp | 25 +++++++++++++++++++++---- Manager.h | 2 ++ ProcessingItem.cpp | 1 - Settings.h | 2 ++ SettingsEditor.cpp | 2 ++ SettingsEditor.ui | 22 ++++++++++++++++------ 6 files changed, 43 insertions(+), 11 deletions(-) diff --git a/Manager.cpp b/Manager.cpp index 54ab28c..45da884 100644 --- a/Manager.cpp +++ b/Manager.cpp @@ -35,6 +35,8 @@ Manager::Manager (QObject *parent) : Recognizer *recognizer = new Recognizer; connect (this, SIGNAL (selected (ProcessingItem)), recognizer, SLOT (recognize (ProcessingItem))); + connect (recognizer, SIGNAL (recognized (ProcessingItem)), + SIGNAL (recognized (ProcessingItem))); connect (recognizer, SIGNAL (error (QString)), SLOT (showError (QString))); connect (this, SIGNAL (settingsEdited ()), @@ -48,8 +50,10 @@ Manager::Manager (QObject *parent) : // Translator Translator *translator = new Translator; - connect (recognizer, SIGNAL (recognized (ProcessingItem)), + connect (this, SIGNAL (requestTranslate (ProcessingItem)), translator, SLOT (translate (ProcessingItem))); + connect (translator, SIGNAL (translated (ProcessingItem)), + SLOT (showResult (ProcessingItem))); connect (translator, SIGNAL (error (QString)), SLOT (showError (QString))); connect (this, SIGNAL (settingsEdited ()), @@ -60,9 +64,6 @@ Manager::Manager (QObject *parent) : translatorThread->start (); connect (qApp, SIGNAL (aboutToQuit ()), translatorThread, SLOT (quit ())); - connect (translator, SIGNAL (translated (ProcessingItem)), - SLOT (showResult (ProcessingItem))); - connect (this, SIGNAL (settingsEdited ()), this, SLOT (applySettings ())); resultDialog_->setWindowIcon (trayIcon_->icon ()); @@ -118,9 +119,25 @@ void Manager::applySettings () { // Depends on SettingsEditor button indexes. 1==dialog useResultDialog_ = GET (resultShowType).toBool (); + settings.endGroup (); Q_CHECK_PTR (dictionary_); dictionary_->updateAvailableOcrLanguages (); + + settings.beginGroup (settings_names::translationGroup); + bool doTranslation = GET (doTranslation).toBool (); + if (doTranslation) { + disconnect (this, SIGNAL (recognized (ProcessingItem)), + this, SLOT (showResult (ProcessingItem))); + connect (this, SIGNAL (recognized (ProcessingItem)), + this, SIGNAL (requestTranslate (ProcessingItem)), Qt::UniqueConnection); + } + else { + disconnect (this, SIGNAL (recognized (ProcessingItem)), + this, SIGNAL (requestTranslate (ProcessingItem))); + connect (this, SIGNAL (recognized (ProcessingItem)), + this, SLOT (showResult (ProcessingItem)), Qt::UniqueConnection); + } #undef GET } diff --git a/Manager.h b/Manager.h index a27a566..84f1774 100644 --- a/Manager.h +++ b/Manager.h @@ -23,6 +23,8 @@ class Manager : public QObject { signals: void selected (ProcessingItem item); + void recognized (ProcessingItem item); + void requestTranslate (ProcessingItem item); void closeSelections (); void settingsEdited (); diff --git a/ProcessingItem.cpp b/ProcessingItem.cpp index 2729b72..c24de1d 100644 --- a/ProcessingItem.cpp +++ b/ProcessingItem.cpp @@ -5,6 +5,5 @@ bool ProcessingItem::isValid () const { valid &= (!screenPos.isNull ()); valid &= (!source.isNull ()); valid &= (!recognized.isEmpty ()); - valid &= (!translated.isEmpty ()); return valid; } diff --git a/Settings.h b/Settings.h index 8f705e0..dc056f9 100644 --- a/Settings.h +++ b/Settings.h @@ -20,6 +20,7 @@ namespace settings_names { //! Translation const QString translationGroup = "Translation"; + const QString doTranslation = "doTranslation"; const QString sourceLanguage = "source_language"; const QString translationLanguage = "translation_language"; @@ -41,6 +42,7 @@ namespace settings_values { const int imageScale = 5; //! Translation + const bool doTranslation = true; const QString sourceLanguage = "auto"; const QString translationLanguage = "ru"; } diff --git a/SettingsEditor.cpp b/SettingsEditor.cpp index 43d2775..62eca4d 100644 --- a/SettingsEditor.cpp +++ b/SettingsEditor.cpp @@ -58,6 +58,7 @@ void SettingsEditor::saveSettings () const { settings.beginGroup (translationGroup); + settings.setValue (doTranslation, ui->doTranslationCombo->isChecked ()); QString trLanguage = dictionary_.translateUiToCode (ui->translateLangCombo->currentText ()); settings.setValue (translationLanguage, trLanguage); QString sourceLanguage = dictionary_.translateForOcrCode (ocrLanguage); @@ -98,6 +99,7 @@ void SettingsEditor::loadSettings () { settings.endGroup (); settings.beginGroup (settings_names::translationGroup); + ui->doTranslationCombo->setChecked (GET (doTranslation).toBool ()); QString trLanguage = dictionary_.translateCodeToUi (GET (translationLanguage).toString ()); ui->translateLangCombo->setCurrentText (trLanguage); settings.endGroup (); diff --git a/SettingsEditor.ui b/SettingsEditor.ui index fe625b1..a494e84 100644 --- a/SettingsEditor.ui +++ b/SettingsEditor.ui @@ -6,8 +6,8 @@ 0 0 - 435 - 242 + 518 + 274 @@ -145,14 +145,14 @@ Вывод результата - + Трей - + Окно @@ -171,7 +171,17 @@ Перевод - + + + + <html><head/><body><p>Необходимо ли переводить (вкл) распознанный текст.</p></body></html> + + + Переводить текст + + + + <html><head/><body><p>Язык, на который осуществляется перевод.</p></body></html> @@ -184,7 +194,7 @@ - +