解决中晶配置参数英文和中文不能通用的问题

This commit is contained in:
yangjiaxuan 2023-07-20 16:58:30 +08:00
parent 23786ed849
commit 10a8be9030
2 changed files with 11 additions and 6 deletions

View File

@ -1591,7 +1591,7 @@ namespace gb
scanner_cfg::scanner_cfg() : path_(""), scanner_name_(""), global_(new json()) scanner_cfg::scanner_cfg() : path_(""), scanner_name_(""), global_(new json())
{ {
default_setting_name_ = QObject::tr("default_setting").toStdString(); default_setting_name_ = "\351\273\230\350\256\244\350\256\276\347\275\256"; //QObject::tr("default_setting").toStdString();
user_default_ = new gb::sane_config_schm(this); user_default_ = new gb::sane_config_schm(this);
user_default_->set_scheme_name(scanner_cfg::default_setting_name_.c_str()); user_default_->set_scheme_name(scanner_cfg::default_setting_name_.c_str());
@ -1823,7 +1823,7 @@ namespace gb
void scanner_cfg::get_all_schemes(std::vector<std::string>& schemes) void scanner_cfg::get_all_schemes(std::vector<std::string>& schemes)
{ {
schemes.push_back(scanner_cfg::default_setting_name_); schemes.push_back(QObject::tr("default_setting").toStdString().c_str()/*scanner_cfg::default_setting_name_*/);
for (auto& v : schemes_) for (auto& v : schemes_)
schemes.push_back(v.name); schemes.push_back(v.name);
} }

View File

@ -201,7 +201,8 @@ void hg_settingdialog::apply_scheme(SANE_Handle dev, LPSANEAPI api, gb::sane_con
{ {
buf = new char[v.desc->size + 4]; buf = new char[v.desc->size + 4];
strcpy(buf, val.c_str()); strcpy(buf, val.c_str());
api->sane_control_option_api(dev, v.id, SANE_ACTION_SET_VALUE, buf, &info); const char* value2 = from_default_language(buf, nullptr);
api->sane_control_option_api(dev, v.id, SANE_ACTION_SET_VALUE, (void*)value2, &info);
delete[] buf; delete[] buf;
} }
else else
@ -316,7 +317,8 @@ void hg_settingdialog::update_opt_value_from_driver()
char *init = (char*)malloc(opt->size * 2 + 4); char *init = (char*)malloc(opt->size * 2 + 4);
m_saneAPI.sane_control_option_api(m_devHandle, i, SANE_ACTION_GET_VALUE, init, &method); m_saneAPI.sane_control_option_api(m_devHandle, i, SANE_ACTION_GET_VALUE, init, &method);
m_list_defaultOptions.append(QPair<const void*, QVariant>(opt, QVariant(QString::fromStdString(init)))); const char* value2 = from_default_language(init, nullptr);
m_list_defaultOptions.append(QPair<const void*, QVariant>(opt, QVariant(QString::fromStdString(value2))));
m_list_getOpt.append(QPair<int, const void*>(i, opt)); m_list_getOpt.append(QPair<int, const void*>(i, opt));
if(first) if(first)
@ -2807,7 +2809,8 @@ void hg_settingdialog::updateSchemeFromUi(gb::sane_config_schm* schm)
m_saneAPI.sane_control_option_api(m_devHandle, i, SANE_ACTION_GET_VALUE, init, &method); m_saneAPI.sane_control_option_api(m_devHandle, i, SANE_ACTION_GET_VALUE, init, &method);
std::string value = QString(init).toStdString(); std::string value = QString(init).toStdString();
schm->config_changed(i, value.c_str(), value.size()); const char* vv = to_default_language(value.c_str(), nullptr);
schm->config_changed(i, vv, strlen(vv));
free(init); free(init);
} }
} }
@ -3003,10 +3006,12 @@ void hg_settingdialog::slot_pushButton_scheme_management(void)
dlg.setWindowTitle(tr("Add new scheme")); dlg.setWindowTitle(tr("Add new scheme"));
if(dlg.exec()) if(dlg.exec())
{ {
QString defaultSetting = "\351\273\230\350\256\244\350\256\276\347\275\256";//默认设置
QString newCfgName = dlg.getText(); QString newCfgName = dlg.getText();
for (int i = 0; i < comb_->count(); ++i) for (int i = 0; i < comb_->count(); ++i)
{ {
if (newCfgName == comb_->itemText(i)) if (newCfgName == comb_->itemText(i) || newCfgName == "Default setting" || newCfgName == "default_setting"
|| newCfgName == defaultSetting)
{ {
QMessageBox::information(this, tr("tips"), tr("The configuration scheme already exists")); QMessageBox::information(this, tr("tips"), tr("The configuration scheme already exists"));
return; return;