调整中英文切换加载配置异常问题

This commit is contained in:
yangjiaxuan 2023-02-01 19:06:24 +08:00
parent 4e04bc090c
commit 41d1b32f0c
1 changed files with 13 additions and 4 deletions

View File

@ -7,6 +7,7 @@
#include "base/HGDef.h"
#include "HGString.h"
#include "sane/sane_option_definitions.h"
#include "lang/app_language.h"
#include "dialog_input.h"
#include <typeinfo>
#include "device_menu.h"
@ -945,7 +946,10 @@ void hg_settingdialog::slot_string_list_comboBoxClicked()
else if(type == COMBO_VAL_FLOAT)
cur_scheme_->config_changed(id, buf, sizeof(SANE_Fixed));
else
cur_scheme_->config_changed(id, buf, strlen(buf));
{
std::string langCN(to_default_language(buf, nullptr));
cur_scheme_->config_changed(id, &langCN[0], langCN.length());
}
free(buf);
}
@ -1381,7 +1385,8 @@ void hg_settingdialog::slot_lineEditInput()
}
else
{
cur_scheme_->config_changed(id, (char*)buf, strlen((char*)buf));
std::string langCN(to_default_language((char*)buf, nullptr));
cur_scheme_->config_changed(id, &langCN[0], langCN.length());
free(buf);
}
}
@ -1629,7 +1634,7 @@ std::string hg_settingdialog::getCurUiShemeName(std::string name)
name += " + ";
if (opt->type == SANE_TYPE_STRING)
name += val;
name += from_default_language(val.c_str(), nullptr);
else
{
name += opt->title;
@ -1663,6 +1668,7 @@ std::string hg_settingdialog::getCurUiShemeName(std::string name)
void hg_settingdialog::save_scheme(void)
{
std::string name(cur_scheme_->get_scheme_name());
bool add = name.empty();
if(add)
@ -1706,7 +1712,7 @@ void hg_settingdialog::save_scheme(void)
{
ind = atoi(name.c_str() + pos + 1);
if(ind > 0)
{
{
name.erase(pos);
sprintf(append, "-%d", ++ind);
}
@ -1720,7 +1726,9 @@ void hg_settingdialog::save_scheme(void)
{
cur_scheme_->end_setting(false);
}
cur_cfg_->select_scheme(cur_scheme_->get_scheme_name().c_str());
cur_cfg_->save();
}
void hg_settingdialog::cancel_setting(void)
@ -1813,6 +1821,7 @@ void hg_settingdialog::on_current_scheme_changed()
}
}
val = from_default_language(val.c_str(), nullptr);
if(title.length())
{
info += tr("<h6><b>") + title + tr(":</b></h6>");