@@ -172,47 +172,56 @@ void MainWidget::setupUi(QWidget *Widget)
172172 // 配置文件读写
173173 ocrSetting = new QSettings (Dtk::Core::DStandardPaths::writableLocation (QStandardPaths::AppConfigLocation) + " /config.conf" , QSettings::IniFormat);
174174
175- // 语种读写设置
176- // 目前仅支持默认插件,默认插件支持的语种字符串:zh-Hans_en,zh-Hant_en,en
177- auto currentLanguage = ocrSetting->value (" language" , " zh-Hans_en" ).toString ();
178- OCREngine::instance ()->setLanguage (currentLanguage);
179-
180- // 设置语种选择框
181- auto recLabel = new DLabel (tr (" Recognize language" ));
182- languageSelectBox = new DComboBox (this );
183- languageSelectBox->setFixedSize (160 , 36 );
184- languageSelectBox->addItems ({tr (" Simplified Chinese" ), tr (" English" ), tr (" Traditional Chinese" )});
185- static std::map<QString, int > languageIndexMap{ {" zh-Hans_en" , 0 },
186- {" en" , 1 },
187- {" zh-Hant_en" , 2 }
188- };
189- languageSelectBox->setCurrentIndex (languageIndexMap[currentLanguage]);
190- connect (languageSelectBox, static_cast <void (DComboBox::*)(int )>(&DComboBox::currentIndexChanged), [this ](int index) {
191- QString resultLanguage;
192- switch (index) {
193- default :
194- resultLanguage = " zh-Hans_en" ;
195- break ;
196- case 0 :
197- resultLanguage = " zh-Hans_en" ;
198- break ;
199- case 1 :
200- resultLanguage = " en" ;
201- break ;
202- case 2 :
203- resultLanguage = " zh-Hant_en" ;
204- break ;
205- };
206- if (!OCREngine::instance ()->setLanguage (resultLanguage)) {
207- return ;
175+ // 使用 V5 插件时,不显示语言选择控件,只设置一次默认语言
176+ if (OCREngine::instance ()->isV5 ()) {
177+ OCREngine::instance ()->setLanguage (" zh-Hans_en" );
178+ } else {
179+ // 语种读写设置
180+ // 目前仅支持默认插件,默认插件支持的语种字符串:zh-Hans_en,zh-Hant_en,en
181+ auto currentLanguage = ocrSetting->value (" language" , " zh-Hans_en" ).toString ();
182+ OCREngine::instance ()->setLanguage (currentLanguage);
183+
184+ // 设置语种选择框
185+ auto recLabel = new DLabel (tr (" Recognize language" ));
186+ languageSelectBox = new DComboBox (this );
187+ languageSelectBox->setFixedSize (160 , 36 );
188+ languageSelectBox->addItems ({tr (" Simplified Chinese" ), tr (" English" ), tr (" Traditional Chinese" )});
189+ static std::map<QString, int > languageIndexMap{ {" zh-Hans_en" , 0 },
190+ {" en" , 1 },
191+ {" zh-Hant_en" , 2 }
192+ };
193+ if (languageIndexMap.find (currentLanguage) != languageIndexMap.end ()) {
194+ languageSelectBox->setCurrentIndex (languageIndexMap[currentLanguage]);
195+ } else {
196+ languageSelectBox->setCurrentIndex (0 );
208197 }
209- ocrSetting->setValue (" language" , resultLanguage);
210- runRec (false );
211- m_noResult->setVisible (false );
212- });
198+ connect (languageSelectBox, static_cast <void (DComboBox::*)(int )>(&DComboBox::currentIndexChanged), [this ](int index) {
199+ QString resultLanguage;
200+ switch (index) {
201+ default :
202+ resultLanguage = " zh-Hans_en" ;
203+ break ;
204+ case 0 :
205+ resultLanguage = " zh-Hans_en" ;
206+ break ;
207+ case 1 :
208+ resultLanguage = " en" ;
209+ break ;
210+ case 2 :
211+ resultLanguage = " zh-Hant_en" ;
212+ break ;
213+ };
214+ if (!OCREngine::instance ()->setLanguage (resultLanguage)) {
215+ return ;
216+ }
217+ ocrSetting->setValue (" language" , resultLanguage);
218+ runRec (false );
219+ m_noResult->setVisible (false );
220+ });
213221
214- m_buttonHorizontalLayout->addWidget (recLabel, 0 , Qt::AlignRight);
215- m_buttonHorizontalLayout->addWidget (languageSelectBox, 0 , Qt::AlignRight);
222+ m_buttonHorizontalLayout->addWidget (recLabel, 0 , Qt::AlignRight);
223+ m_buttonHorizontalLayout->addWidget (languageSelectBox, 0 , Qt::AlignRight);
224+ }
216225
217226 m_copyBtn = new DIconButton (Widget);
218227 m_copyBtn->setObjectName (QStringLiteral (" Copy text" ));
0 commit comments