调整黑白属性依赖项;父项依赖只有在父项可用时才生效

This commit is contained in:
gb 2023-06-20 13:34:09 +08:00
parent e6eaefb511
commit 6c4c7535ed
5 changed files with 32 additions and 35 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -2093,13 +2093,12 @@ bool hg_sane_middleware::is_enable_and(scanner_handle hdev, const std::vector<MA
VLOG_MINI_1(LOG_LEVEL_WARNING, "option %s's current value is not found, other options depend it maybe in wrong status.\n", master[i].name.c_str());
continue;
}
enabled &= master[i].compare_val(it->val.c_str(), master[i].limit_l.c_str(), master[i].limit_r.c_str());
if (enabled) // whether parent is enabled
{
const SANE_Option_Descriptor* desc = hg_sane_middleware::instance()->find_stored_descriptor(hdev, master[i].name.c_str());
if (desc && (desc->cap & SANE_CAP_INACTIVE))
enabled = false;
}
else
enabled &= master[i].compare_val(it->val.c_str(), master[i].limit_l.c_str(), master[i].limit_r.c_str());
}
return enabled;
@ -2117,13 +2116,11 @@ bool hg_sane_middleware::is_enable_or(scanner_handle hdev, const std::vector<MAS
continue;
}
enabled |= master[i].compare_val(it->val.c_str(), master[i].limit_l.c_str(), master[i].limit_r.c_str());
if (enabled) // whether parent is enabled
{
const SANE_Option_Descriptor* desc = hg_sane_middleware::instance()->find_stored_descriptor(hdev, master[i].name.c_str());
if (desc && (desc->cap & SANE_CAP_INACTIVE))
enabled = false;
}
else
enabled |= master[i].compare_val(it->val.c_str(), master[i].limit_l.c_str(), master[i].limit_r.c_str());
}
return enabled;