修改title字段为name字段

This commit is contained in:
yangjiaxuan 2022-10-12 17:42:55 +08:00
parent 99f5ff8df8
commit 16fb5e09f8
3 changed files with 187 additions and 9 deletions

View File

@ -13,7 +13,165 @@
#include <QCoreApplication> #include <QCoreApplication>
#include "base/HGUtility.h" #include "base/HGUtility.h"
struct
{
const char* name;
const char* title;
}g_opts[] = { {SANE_STD_OPT_NAME_RESTORE , OPTION_TITLE_HFMRSZ}
, {SANE_STD_OPT_NAME_HELP , OPTION_TITLE_BZ}
, {SANE_STD_OPT_NAME_IS_MULTI_OUT , OPTION_TITLE_DLSC}
, {SANE_STD_OPT_NAME_MULTI_OUT_TYPE , OPTION_TITLE_DLSCLX}
, {SANE_STD_OPT_NAME_COLOR_MODE , OPTION_TITLE_YSMS}
, {SANE_STD_OPT_NAME_BINARY_THRESHOLD , OPTION_TITLE_HBTXYZ}
, {SANE_STD_OPT_NAME_REVERSE_01 , OPTION_TITLE_HBTXFSSC}
, {SANE_STD_OPT_NAME_FILTER , OPTION_TITLE_HDHHBTX_CSYZQ}
, {SANE_STD_OPT_NAME_RID_MULTIOUT_RED , OPTION_TITLE_24WCSTX_DLSCCH}
, {SANE_STD_OPT_NAME_RID_ANSWER_SHEET_RED , OPTION_TITLE_24WCSTX_DTKCH}
, {SANE_STD_OPT_NAME_ERASE_BACKGROUND , OPTION_TITLE_BJYC}
, {SANE_STD_OPT_NAME_BKG_COLOR_RANGE , OPTION_TITLE_BJSCFDFW}
, {SANE_STD_OPT_NAME_SHARPEN , OPTION_TITLE_RHYMH}
, {SANE_STD_OPT_NAME_RID_MORR , OPTION_TITLE_QCMW}
, {SANE_STD_OPT_NAME_RID_GRID , OPTION_TITLE_CWW}
, {SANE_STD_OPT_NAME_ERROR_EXTENSION , OPTION_TITLE_CWKS}
, {SANE_STD_OPT_NAME_NOISE_OPTIMIZE , OPTION_TITLE_HBTXZDYH}
, {SANE_STD_OPT_NAME_NOISE_SIZE , OPTION_TITLE_ZDYHCC}
, {SANE_STD_OPT_NAME_PAPER , OPTION_TITLE_ZZCC}
, {SANE_STD_OPT_NAME_CUSTOM_AREA , OPTION_TITLE_ZDYSMQY}
, {SANE_STD_OPT_NAME_CUSTOM_AREA_LEFT , OPTION_TITLE_SMQYZCmm}
, {SANE_STD_OPT_NAME_CUSTOM_AREA_RIGHT , OPTION_TITLE_SMQYYCmm}
, {SANE_STD_OPT_NAME_CUSTOM_AREA_TOP , OPTION_TITLE_SMQYSCmm}
, {SANE_STD_OPT_NAME_CUSTOM_AREA_BOTTOM , OPTION_TITLE_SMQYXCmm}
, {SANE_STD_OPT_NAME_SIZE_CHECK , OPTION_TITLE_CCJC}
, {SANE_STD_OPT_NAME_PAGE , OPTION_TITLE_SMYM}
, {SANE_STD_OPT_NAME_DISCARD_BLANK_SENS , OPTION_TITLE_TGKBYLMD}
, {SANE_STD_OPT_NAME_RESOLUTION , OPTION_TITLE_FBL}
, {SANE_STD_OPT_NAME_TIME_TO_SLEEP , OPTION_TITLE_XMSJ}
, {SANE_STD_OPT_NAME_IMAGE_QUALITY , OPTION_TITLE_HZ}
, {SANE_STD_OPT_NAME_EXCHANGE ,OPTION_TITLE_JHZFM}
, {SANE_STD_OPT_NAME_SPLIT ,OPTION_TITLE_TXCF }
, {SANE_STD_OPT_NAME_ANTI_SKEW , OPTION_TITLE_ZDJP}
, {SANE_STD_OPT_NAME_IS_CUSTOM_GAMMA , OPTION_TITLE_QYSDQX}
, {SANE_STD_OPT_NAME_GAMMA , OPTION_TITLE_JMZ}
, {SANE_STD_OPT_NAME_BRIGHTNESS , OPTION_TITLE_LDZ}
, {SANE_STD_OPT_NAME_CONTRAST , OPTION_TITLE_DBD}
, {SANE_STD_OPT_NAME_IS_PHOTO_MODE , OPTION_TITLE_ZPMS}
, {SANE_STD_OPT_NAME_ERASE_BLACK_FRAME , OPTION_TITLE_XCHK}
, {SANE_STD_OPT_NAME_DARK_SAMPLE , OPTION_TITLE_SSYZ}
, {SANE_STD_OPT_NAME_THRESHOLD , OPTION_TITLE_YZ}
, {SANE_STD_OPT_NAME_ANTI_NOISE_LEVEL , OPTION_TITLE_BJKZDJ}
, {SANE_STD_OPT_NAME_MARGIN , OPTION_TITLE_BYSJ}
, {SANE_STD_OPT_NAME_FILL_BKG_MODE , OPTION_TITLE_BJTCFS}
, {SANE_STD_OPT_NAME_IS_ANTI_PERMEATE , OPTION_TITLE_FZST}
, {SANE_STD_OPT_NAME_ANTI_PERMEATE_LEVEL , OPTION_TITLE_FZSTDJ}
, {SANE_STD_OPT_NAME_RID_HOLE_L , OPTION_TITLE_CKYCZC}
, {SANE_STD_OPT_NAME_SEARCH_HOLE_RANGE_L , OPTION_TITLE_ZCCKSSFWZFMBL}
, {SANE_STD_OPT_NAME_RID_HOLE_R , OPTION_TITLE_CKYCYC}
, {SANE_STD_OPT_NAME_SEARCH_HOLE_RANGE_R , OPTION_TITLE_YCCKSSFWZFMBL}
, {SANE_STD_OPT_NAME_RID_HOLE_T , OPTION_TITLE_CKYCSC}
, {SANE_STD_OPT_NAME_SEARCH_HOLE_RANGE_T , OPTION_TITLE_SCCKSSFWZFMBL}
, {SANE_STD_OPT_NAME_RID_HOLE_B , OPTION_TITLE_CKYCXC}
, {SANE_STD_OPT_NAME_SEARCH_HOLE_RANGE_B , OPTION_TITLE_XCCKSSFWZFMBL}
, {SANE_STD_OPT_NAME_IS_FILL_COLOR , OPTION_TITLE_SCTC}
, {SANE_STD_OPT_NAME_IS_ULTROSONIC_CHECK , OPTION_TITLE_CSBJC}
, {SANE_STD_OPT_NAME_DOUBLE_FEED_HANDLE , OPTION_TITLE_SZTPCL}
, {SANE_STD_OPT_NAME_IS_CHECK_STAPLE , OPTION_TITLE_ZDJC}
, {SANE_STD_OPT_NAME_SCAN_MODE , OPTION_TITLE_SMZS}
, {SANE_STD_OPT_NAME_SCAN_COUNT , OPTION_TITLE_SMSL}
, {SANE_STD_OPT_NAME_TEXT_DIRECTION , OPTION_TITLE_WGFX}
, {SANE_STD_OPT_NAME_IS_ROTATE_BKG_180 , OPTION_TITLE_BMXZ180}
, {SANE_STD_OPT_NAME_IS_CHECK_DOG_EAR , OPTION_TITLE_ZJJC}
, {SANE_STD_OPT_NAME_DOG_EAR_SIZE , OPTION_TITLE_ZJDX}
, {SANE_STD_OPT_NAME_IS_CHECK_ASKEW , OPTION_TITLE_WXJC}
, {SANE_STD_OPT_NAME_ASKEW_RANGE , OPTION_TITLE_WXRRD}
, {SANE_STD_OPT_NAME_FEED_STRENGTH , OPTION_TITLE_FZQD}
, {SANE_STD_OPT_NAME_IS_AUTO_FEED_STRENGTH , OPTION_TITLE_ZDFZQD}
, {SANE_STD_OPT_NAME_FEED_STRENGTH_VALUE , OPTION_TITLE_JZSBL}
, {SANE_STD_OPT_NAME_WAIT_TO_SCAN , OPTION_TITLE_DZSM}
},
g_discard[] = { {SANE_STD_OPT_NAME_REVERSE_01 , "\351\273\221\347\231\275\345\233\276\345\203\217\345\217\215\350\211\262\350\276\223\345\207\272\357\274\210\346\255\243\345\270\270\351\242\234\350\211\262\344\270\272\357\274\2320-\351\273\221\350\211\262\357\274\2331-\347\231\275\350\211\262\357\274\211"} // 黑白图像反色输出正常颜色为0-黑色1-白色)
, {SANE_STD_OPT_NAME_FILTER , "\347\201\260\345\272\246\346\210\226\351\273\221\347\231\275\345\233\276\345\203\217 - \351\231\244\350\211\262"} // 灰度或黑白图像 - 除色
, {SANE_STD_OPT_NAME_IS_AUTO_FEED_STRENGTH , "\350\207\252\345\212\250\346\220\223\347\272\270\345\274\272\345\272\246"} // 自动搓纸强度
, {SANE_STD_OPT_NAME_FEED_STRENGTH_VALUE , "\346\220\223\347\272\270\351\230\210\345\200\274"} // " 搓纸阈值"
};
config::config() : ini_(NULL), file_(""), schem_jsn_(NULL) config::config() : ini_(NULL), file_(""), schem_jsn_(NULL)
{ {
} }
@ -302,6 +460,17 @@ void config::load_all_scanner_configs(std::vector<DEVCFG>& cfgs)
cfgs.push_back(cfg); cfgs.push_back(cfg);
} }
} }
void transfer_name_from_cn_title_2_en_name(std::string& name)
{
int size = sizeof(g_opts) / sizeof(g_opts[0]);
for (size_t i = 0; i < size; i++)
{
if (strcmp(name.c_str(), g_opts[i].title) == 0)
{
name = g_opts[i].name;
}
}
}
void config::load_scanner_configs(QString dev_name, DEVCFG* cfg) void config::load_scanner_configs(QString dev_name, DEVCFG* cfg)
{ {
std::string name(config::device_to_config_dev_name(dev_name)), cont(""); std::string name(config::device_to_config_dev_name(dev_name)), cont("");
@ -355,10 +524,9 @@ void config::load_scanner_configs(QString dev_name, DEVCFG* cfg)
if(!item.attach_text(&cont[0])) if(!item.attach_text(&cont[0]))
continue; continue;
if(item.get_value("name", val.name) && if(item.get_value("name", val.name) && item.get_value("value", val.val))
// item.get_value("type", val.type) &&
item.get_value("value", val.val))
{ {
transfer_name_from_cn_title_2_en_name(val.name); // chinese title to english name
item.get_value("extra", val.extra); item.get_value("extra", val.extra);
scheme.opts.push_back(val); scheme.opts.push_back(val);
} }

View File

@ -310,7 +310,7 @@ void hg_settingdialog::createUI()
if(opt == nullptr) continue; if(opt == nullptr) continue;
if(schemes_ && cur_ind_ != -1) if(schemes_ && cur_ind_ != -1)
ind = find_opt_setting(opt->title, schemes_->schemes[scheme].opts); ind = find_opt_setting(opt->name, schemes_->schemes[scheme].opts);
init.opt = i + 1; init.opt = i + 1;
h = nullptr; h = nullptr;
switch (opt->type) switch (opt->type)
@ -1802,7 +1802,7 @@ void hg_settingdialog::save_scheme(void)
// bool existing = false; // bool existing = false;
ov.name = opt->title; ov.name = opt->name;
// for(size_t i = 0; i < src.opts.size(); ++i) // for(size_t i = 0; i < src.opts.size(); ++i)
// { // {
// if(ov == src.opts[i]) // if(ov == src.opts[i])
@ -1875,7 +1875,6 @@ void hg_settingdialog::save_scheme(void)
{ {
bool overwrite = true, ask = true; bool overwrite = true, ask = true;
std::vector<OPTVAL>::iterator it2 = std::find(src.opts.begin(), src.opts.end(), SANE_STD_OPT_NAME_IS_CUSTOM_GAMMA); std::vector<OPTVAL>::iterator it2 = std::find(src.opts.begin(), src.opts.end(), SANE_STD_OPT_NAME_IS_CUSTOM_GAMMA);
if(save_gamma && it2 != src.opts.end()) if(save_gamma && it2 != src.opts.end())
{ {
OPTVAL v1(*it1), v2(*it2); OPTVAL v1(*it1), v2(*it2);
@ -2079,7 +2078,7 @@ int hg_settingdialog::apply_settings(OPTSCHEME* scheme)
desc->type == SANE_TYPE_BUTTON) desc->type == SANE_TYPE_BUTTON)
continue; continue;
int opt = find_opt_setting(desc->title, scheme->opts); int opt = find_opt_setting(desc->name, scheme->opts);
if(opt == -1) if(opt == -1)
continue; continue;
@ -2128,7 +2127,18 @@ void hg_settingdialog::on_current_scheme_changed()
const std::vector<OPTVAL>& opts = schemes_->schemes[id + 1].opts; const std::vector<OPTVAL>& opts = schemes_->schemes[id + 1].opts;
for(size_t i = 0; i < opts.size(); ++i) for(size_t i = 0; i < opts.size(); ++i)
{ {
info += tr("<h6><b>") + QString::fromStdString(opts[i].name) + tr(":</b></h6>"); QString title;
for (int ii = 0; ii < m_list_defaultOptions.size(); ii++)
{
const SANE_Option_Descriptor* opt = reinterpret_cast<const SANE_Option_Descriptor*>(m_list_defaultOptions.at(ii).first);
if(strcmp(opt->name, opts[i].name.c_str()) == 0)
{
title = opt->title;
break;
}
}
info += tr("<h6><b>") + title + tr(":</b></h6>");
info += tr("<p> ") + QString::fromStdString(opts[i].val) + tr("</p>"); info += tr("<p> ") + QString::fromStdString(opts[i].val) + tr("</p>");
} }
} }

View File

@ -51,7 +51,7 @@ sane_dev::act_result sane_dev::apply(const SANE_Option_Descriptor* desc, int opt
for(size_t i = 0; i < vals.size(); ++i) for(size_t i = 0; i < vals.size(); ++i)
{ {
if(vals[i].name == desc->title) if(vals[i].name == desc->name)
{ {
cfg = &vals[i]; cfg = &vals[i];
break; break;