Pass ProcessingItem through Translator event if it should not be translated (allow user to choose it be key modifiers).
This commit is contained in:
		
							parent
							
								
									2a1ee13b46
								
							
						
					
					
						commit
						9083a7ca6c
					
				
							
								
								
									
										23
									
								
								Manager.cpp
									
									
									
									
									
								
							
							
						
						
									
										23
									
								
								Manager.cpp
									
									
									
									
									
								
							@ -29,7 +29,7 @@ Manager::Manager (QObject *parent) :
 | 
				
			|||||||
  resultDialog_ (new ResultDialog (*dictionary_)),
 | 
					  resultDialog_ (new ResultDialog (*dictionary_)),
 | 
				
			||||||
  captureAction_ (NULL), repeatCaptureAction_ (NULL),
 | 
					  captureAction_ (NULL), repeatCaptureAction_ (NULL),
 | 
				
			||||||
  repeatAction_ (NULL), clipboardAction_ (NULL),
 | 
					  repeatAction_ (NULL), clipboardAction_ (NULL),
 | 
				
			||||||
  useResultDialog_ (true) {
 | 
					  useResultDialog_ (true), doTranslation_ (true) {
 | 
				
			||||||
  GlobalActionHelper::init ();
 | 
					  GlobalActionHelper::init ();
 | 
				
			||||||
  qRegisterMetaType<ProcessingItem>();
 | 
					  qRegisterMetaType<ProcessingItem>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -38,7 +38,7 @@ Manager::Manager (QObject *parent) :
 | 
				
			|||||||
  connect (this, SIGNAL (requestRecognize (ProcessingItem)),
 | 
					  connect (this, SIGNAL (requestRecognize (ProcessingItem)),
 | 
				
			||||||
           recognizer, SLOT (recognize (ProcessingItem)));
 | 
					           recognizer, SLOT (recognize (ProcessingItem)));
 | 
				
			||||||
  connect (recognizer, SIGNAL (recognized (ProcessingItem)),
 | 
					  connect (recognizer, SIGNAL (recognized (ProcessingItem)),
 | 
				
			||||||
           SIGNAL (recognized (ProcessingItem)));
 | 
					           this, SIGNAL (requestTranslate (ProcessingItem)));
 | 
				
			||||||
  connect (recognizer, SIGNAL (error (QString)),
 | 
					  connect (recognizer, SIGNAL (error (QString)),
 | 
				
			||||||
           SLOT (showError (QString)));
 | 
					           SLOT (showError (QString)));
 | 
				
			||||||
  connect (this, SIGNAL (settingsEdited ()),
 | 
					  connect (this, SIGNAL (settingsEdited ()),
 | 
				
			||||||
@ -157,25 +157,11 @@ void Manager::applySettings () {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  settings.beginGroup (settings_names::translationGroup);
 | 
					  settings.beginGroup (settings_names::translationGroup);
 | 
				
			||||||
  defaultTranslationLanguage_ = GET (translationLanguage).toString ();
 | 
					  defaultTranslationLanguage_ = GET (translationLanguage).toString ();
 | 
				
			||||||
 | 
					  doTranslation_ = GET (doTranslation).toBool ();
 | 
				
			||||||
  settings.endGroup ();
 | 
					  settings.endGroup ();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Q_CHECK_PTR (dictionary_);
 | 
					  Q_CHECK_PTR (dictionary_);
 | 
				
			||||||
  dictionary_->updateAvailableOcrLanguages ();
 | 
					  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
 | 
					#undef GET
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -210,7 +196,8 @@ void Manager::capture () {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void Manager::handleSelection (ProcessingItem item) {
 | 
					void Manager::handleSelection (ProcessingItem item) {
 | 
				
			||||||
  if (item.translateLanguage.isEmpty ()) {
 | 
					  bool altMod = item.modifiers & Qt::AltModifier;
 | 
				
			||||||
 | 
					  if ((doTranslation_ && !altMod) || (!doTranslation_ && altMod)) {
 | 
				
			||||||
    item.translateLanguage = defaultTranslationLanguage_;
 | 
					    item.translateLanguage = defaultTranslationLanguage_;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  emit requestRecognize (item);
 | 
					  emit requestRecognize (item);
 | 
				
			||||||
 | 
				
			|||||||
@ -23,7 +23,6 @@ class Manager : public QObject {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  signals:
 | 
					  signals:
 | 
				
			||||||
    void requestRecognize (ProcessingItem item);
 | 
					    void requestRecognize (ProcessingItem item);
 | 
				
			||||||
    void recognized (ProcessingItem item);
 | 
					 | 
				
			||||||
    void requestTranslate (ProcessingItem item);
 | 
					    void requestTranslate (ProcessingItem item);
 | 
				
			||||||
    void closeSelections ();
 | 
					    void closeSelections ();
 | 
				
			||||||
    void settingsEdited ();
 | 
					    void settingsEdited ();
 | 
				
			||||||
@ -64,6 +63,7 @@ class Manager : public QObject {
 | 
				
			|||||||
    //! Used threads. For proper termination.
 | 
					    //! Used threads. For proper termination.
 | 
				
			||||||
    QList<QThread *> threads_;
 | 
					    QList<QThread *> threads_;
 | 
				
			||||||
    QString defaultTranslationLanguage_;
 | 
					    QString defaultTranslationLanguage_;
 | 
				
			||||||
 | 
					    bool doTranslation_;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif // MANAGER_H
 | 
					#endif // MANAGER_H
 | 
				
			||||||
 | 
				
			|||||||
@ -46,6 +46,10 @@ void WebTranslator::addProxyToView () {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void WebTranslator::translate (ProcessingItem item) {
 | 
					void WebTranslator::translate (ProcessingItem item) {
 | 
				
			||||||
 | 
					  if (item.translateLanguage.isEmpty ()) {
 | 
				
			||||||
 | 
					    emit translated (item);
 | 
				
			||||||
 | 
					    return;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
  queue_.push_back (item);
 | 
					  queue_.push_back (item);
 | 
				
			||||||
  translateQueued ();
 | 
					  translateQueued ();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user