修复删除属性导致名字与序号不匹配的BUG

This commit is contained in:
gb 2023-06-25 09:53:48 +08:00
parent 6f857d2432
commit 1b774d39bb
2 changed files with 18 additions and 4 deletions

View File

@ -2883,6 +2883,14 @@ void hg_scanner::change_setting_language(bool init)
} }
} }
} }
void hg_scanner::erase_option(const char* name)
{
setting_jsn_.erase(name);
std::vector<std::string>::iterator it = std::find(jsn_children_.begin(), jsn_children_.end(), name);
if (it != jsn_children_.end())
jsn_children_.erase(it);
}
void hg_scanner::init_settings(const char* json_setting_text) void hg_scanner::init_settings(const char* json_setting_text)
{ {
const char* lang = language_option_descriptor(); const char* lang = language_option_descriptor();
@ -2909,14 +2917,19 @@ void hg_scanner::init_settings(const char* json_setting_text)
} }
if (!is_kernelsnap_239_220830_ && pid_ == 0x239) if (!is_kernelsnap_239_220830_ && pid_ == 0x239)
{ {
setting_jsn_.erase(SANE_STD_OPT_NAME_WAIT_TO_SCAN); //setting_jsn_.erase(SANE_STD_OPT_NAME_WAIT_TO_SCAN);
setting_jsn_.erase(SANE_STD_OPT_NAME_IS_AUTO_FEED_STRENGTH); //setting_jsn_.erase(SANE_STD_OPT_NAME_IS_AUTO_FEED_STRENGTH);
setting_jsn_.erase(SANE_STD_OPT_NAME_FEED_STRENGTH); //setting_jsn_.erase(SANE_STD_OPT_NAME_FEED_STRENGTH);
erase_option(SANE_STD_OPT_NAME_WAIT_TO_SCAN);
erase_option(SANE_STD_OPT_NAME_IS_AUTO_FEED_STRENGTH);
erase_option(SANE_STD_OPT_NAME_FEED_STRENGTH);
} }
if (!is_kernelsnap_239_220429_ && pid_ == 0x239) if (!is_kernelsnap_239_220429_ && pid_ == 0x239)
{ {
setting_jsn_.erase(SANE_STD_OPT_NAME_IS_FILL_COLOR); //setting_jsn_.erase(SANE_STD_OPT_NAME_IS_FILL_COLOR);
erase_option(SANE_STD_OPT_NAME_IS_FILL_COLOR);
} }
VLOG_MINI_1(LOG_LEVEL_ALL, "Initialize %d settings ...\n", jsn_children_.size() - 1); VLOG_MINI_1(LOG_LEVEL_ALL, "Initialize %d settings ...\n", jsn_children_.size() - 1);
notify_setting_result_ = false; notify_setting_result_ = false;
change_setting_language(true); change_setting_language(true);

View File

@ -379,6 +379,7 @@ protected:
uint32_t fetching_id_; // for sane read image ext info. added on 2023-01-13 uint32_t fetching_id_; // for sane read image ext info. added on 2023-01-13
void change_setting_language(bool init); void change_setting_language(bool init);
void erase_option(const char* name);
void init_settings(const char* json_setting_text); void init_settings(const char* json_setting_text);
int init_settings(int pid); int init_settings(int pid);
void change_string_2_lang_id(const char* name, const char* key); void change_string_2_lang_id(const char* name, const char* key);