调整删除父依赖项导致子依赖项不出现的问题

This commit is contained in:
13038267101 2023-07-10 18:06:17 +08:00
parent 1c30e8bf3a
commit 17369825ff
2 changed files with 68 additions and 2 deletions

View File

@ -1366,6 +1366,7 @@ int hg_scanner::set_color_change(void)
}
bool hg_scanner::jsn_reorganize()
{
string str;
int len = setting_jsn_.at(SANE_STD_OPT_NAME_PAPER).at("range").size();
int max_papers[] = { PAPER_MAX_SIZE, PAPER_MAX_SIZE_CLIP, PAPER_TRIGEMINY };
@ -1382,15 +1383,18 @@ bool hg_scanner::jsn_reorganize()
}
}
}
if (!firmware_sup_wait_paper_ && pid_ == 0x239)
{
erase_option(SANE_STD_OPT_NAME_WAIT_TO_SCAN);
erase_option(SANE_STD_OPT_NAME_WAIT_SCAN_EXIT);
}
if (!firmware_sup_pick_strength_ && pid_ == 0x239)
{
erase_option(SANE_STD_OPT_NAME_IS_AUTO_FEED_STRENGTH);
erase_option(SANE_STD_OPT_NAME_FEED_STRENGTH_VALUE);
erase_option(SANE_STD_OPT_NAME_FEED_STRENGTH);
}
if (!firmware_sup_color_fill_ && (pid_ == 0x239 || pid_ == 0x439))
{
@ -1410,7 +1414,7 @@ bool hg_scanner::jsn_reorganize()
erase_option(SANE_STD_OPT_NAME_ANTI_PERMEATE_LEVEL);
}
erase_option(SANE_STD_OPT_NAME_RID_GRID); //全系移除 除网纹
return true;
}
int hg_scanner::hgpaper_to_devspaper(Paper_Map papermap[], int len, int& paper, bool* exact, TwSS* type)
@ -2832,6 +2836,66 @@ void hg_scanner::change_setting_language(bool init)
change_string_2_lang_id(v.c_str(), "desc");
setting_jsn_.at(v.c_str()).at("type").get_to(val);
string depend;
string depend_temp;
bool is_depend = false;
if (setting_jsn_.at(v.c_str()).contains("depend_or"))
{
int depend_size = setting_jsn_.at(v.c_str()).at("depend_or").size();
int y = 0;
while (y < depend_size)
{
setting_jsn_.at(v.c_str()).at("depend_or").at(y).get_to(depend);
for (size_t k = 0; k < erase_depend_.size(); k++)
{
if (depend.find(erase_depend_[k]) != string::npos)
{
setting_jsn_.at(v.c_str()).at("depend_or").erase(y);
depend_temp = depend;
y--;
break;
}
else if (!depend_temp.empty() && !(depend[0] <= 'z' && depend[0] >= 'a'))
{
setting_jsn_.at(v.c_str()).at("depend_or").erase(y);
y--;
break;
}
}
depend_size = setting_jsn_.at(v.c_str()).at("depend_or").size();
y++;
}
}
else if (setting_jsn_.at(v.c_str()).contains("depend_and"))
{
int depend_size = setting_jsn_.at(v.c_str()).at("depend_and").size();
int y = 0;
while (y < depend_size)
{
setting_jsn_.at(v.c_str()).at("depend_and").at(y).get_to(depend);
for (size_t k = 0; k < erase_depend_.size(); k++)
{
if (depend.find(erase_depend_[k]) != string::npos)
{
setting_jsn_.at(v.c_str()).at("depend_and").erase(y);
depend_temp = depend;
y--;
break;
}
else if (!depend_temp.empty() && !(depend[0] <= 'z' && depend[0] >= 'a'))
{
setting_jsn_.at(v.c_str()).at("depend_and").erase(y);
y--;
break;
}
}
depend_size = setting_jsn_.at(v.c_str()).at("depend_and").size();
y++;
}
}
//if (v.compare(from_default_language(SANE_STD_OPT_NAME_TIME_TO_SLEEP)) == 0)
//{
// int val = 0;
@ -2936,6 +3000,7 @@ void hg_scanner::change_setting_language(bool init)
}
void hg_scanner::erase_option(const char* name)
{
erase_depend_.push_back(name);
setting_jsn_.erase(name);
std::vector<std::string>::iterator it = std::find(jsn_children_.begin(), jsn_children_.end(), name);

View File

@ -293,6 +293,7 @@ protected:
bool cb_mem_;
bool test_1_paper_; // 是否为单张扫描模式
std::vector<std::string> jsn_children_;
std::vector<string> erase_depend_; //需要删除父依赖项
json setting_jsn_;
IMGPRCFIXPARAM image_prc_param_;