diff --git a/app/scanner/config.cpp b/app/scanner/config.cpp index 8f12722f..3f40dfc8 100644 --- a/app/scanner/config.cpp +++ b/app/scanner/config.cpp @@ -460,7 +460,7 @@ void config::load_all_scanner_configs(std::vector& cfgs) cfgs.push_back(cfg); } } -void transfer_name_from_cn_title_2_en_name(std::string& name) +void config::transferTitle2Name(std::string& name) { int size = sizeof(g_opts) / sizeof(g_opts[0]); for (size_t i = 0; i < size; i++) @@ -472,7 +472,7 @@ void transfer_name_from_cn_title_2_en_name(std::string& name) } } -std::string config::transfer_en_name_2_cn_title(std::string& name) +std::string config::transferName2Title(std::string& name) { int size = sizeof(g_opts) / sizeof(g_opts[0]); for (size_t i = 0; i < size; i++) @@ -539,7 +539,7 @@ void config::load_scanner_configs(QString dev_name, DEVCFG* cfg) if(item.get_value("name", val.name) && item.get_value("value", val.val)) { - transfer_name_from_cn_title_2_en_name(val.name); // chinese title to english name + transferTitle2Name(val.name); // chinese title to english name item.get_value("extra", val.extra); scheme.opts.push_back(val); } @@ -591,7 +591,9 @@ int config::save_scanner_configs(const DEVCFG* cfg) for(size_t j = 0; j < cfg->schemes[i].opts.size(); ++j) { val = new gb::json(); - val->set_value("name", cfg->schemes[i].opts[j].name); + std::string jsonName = cfg->schemes[i].opts[j].name; + transferTitle2Name(jsonName); + val->set_value("name", jsonName); // val->set_value("type", cfg->schemes[i].opts[j].type); val->set_value("extra", cfg->schemes[i].opts[j].extra); val->set_value("value", cfg->schemes[i].opts[j].val); diff --git a/app/scanner/config.h b/app/scanner/config.h index aeb057c3..aa5f96c3 100644 --- a/app/scanner/config.h +++ b/app/scanner/config.h @@ -154,5 +154,6 @@ public: void load_all_scanner_configs(std::vector& cfgs); void load_scanner_configs(QString dev_name, DEVCFG* cfg); int save_scanner_configs(const DEVCFG* cfg); - std::string transfer_en_name_2_cn_title(std::string& name); + void transferTitle2Name(std::string& name); + std::string transferName2Title(std::string& name); }; diff --git a/app/scanner/hg_settingdialog.cpp b/app/scanner/hg_settingdialog.cpp index 0585a3c6..b18b7a0e 100644 --- a/app/scanner/hg_settingdialog.cpp +++ b/app/scanner/hg_settingdialog.cpp @@ -193,12 +193,12 @@ void hg_settingdialog::create_scheme_management_ui(QVBoxLayout* layout) for(int i = 1; i < (int)schemes_->schemes.size(); ++i) { std::string schemName = schemes_->schemes[i].name; - comb_->addItem(QString::fromStdString(m_config->transfer_en_name_2_cn_title(schemName))); + comb_->addItem(QString::fromStdString(m_config->transferName2Title(schemName))); if(schemes_->cur_scheme == i - 1) { enabled = true; std::string schemName2 = schemes_->schemes[i].name; - comb_->setCurrentText(QString::fromStdString(m_config->transfer_en_name_2_cn_title(schemName2))); + comb_->setCurrentText(QString::fromStdString(m_config->transferName2Title(schemName2))); } } @@ -1863,7 +1863,7 @@ void hg_settingdialog::save_scheme(void) bool save_gamma = false; if(os.name.empty()) - os.name = m_config->transfer_en_name_2_cn_title(os.opts[0].name) + "(" + os.opts[0].val + ")"; + os.name = m_config->transferName2Title(os.opts[0].name) + "(" + os.opts[0].val + ")"; buf[0] = 0; while(std::find(schemes_->schemes.begin(), schemes_->schemes.end(), os.name + buf) != schemes_->schemes.end()) @@ -2154,7 +2154,7 @@ void hg_settingdialog::on_current_scheme_changed() for (int ii = 0; ii < m_list_defaultOptions.size(); ii++) { const SANE_Option_Descriptor* opt = reinterpret_cast(m_list_defaultOptions.at(ii).first); - if(strcmp(opt->name, opts[i].name.c_str()) == 0) + if(strcmp(opt->name, opts[i].name.c_str()) == 0 || strcmp(opt->title, opts[i].name.c_str()) == 0) { title = opt->title; break;