FIX:add exist_multi_color_filment logic
jira: STUDIO-11477 Change-Id: If30e0289096b6d465eace503fbe706fb31742f0c
This commit is contained in:
parent
bbf32fd6f7
commit
1ace58b950
|
@ -1917,6 +1917,7 @@ unsigned int PresetBundle::sync_ams_list(std::vector<std::pair<DynamicPrintConfi
|
|||
bool is_map{false};
|
||||
std::string filament_color = "";
|
||||
std::string filament_preset = "";
|
||||
std::vector<std::string> mutli_filament_color;
|
||||
};
|
||||
auto is_double_extruder = get_printer_extruder_count() == 2;
|
||||
std::vector<AmsInfo> ams_infos;
|
||||
|
@ -2038,13 +2039,18 @@ unsigned int PresetBundle::sync_ams_list(std::vector<std::pair<DynamicPrintConfi
|
|||
std::vector<AmsInfo> need_append_colors;
|
||||
auto exist_colors = filament_color->values;
|
||||
auto exist_filament_presets = this->filament_presets;
|
||||
std::vector<std::vector<std::string>> exist_multi_color_filment;
|
||||
exist_multi_color_filment.resize(exist_colors.size());
|
||||
for (int i = 0; i < exist_colors.size(); i++) {
|
||||
exist_multi_color_filment[i] = {exist_colors[i]};
|
||||
}
|
||||
for (size_t i = 0; i < exist_colors.size(); i++) {
|
||||
if (maps.find(i) != maps.end()) {//mapping exist
|
||||
auto valid_index = get_map_index(ams_array_maps, maps[i]);
|
||||
if (valid_index >= 0 && valid_index < ams_filament_presets.size()) {
|
||||
exist_colors[i] = ams_filament_colors[valid_index];
|
||||
exist_filament_presets[i] = ams_filament_presets[valid_index];
|
||||
ams_multi_color_filment[i] = { ams_filament_colors[valid_index] };
|
||||
exist_multi_color_filment[i] = ams_multi_color_filment[valid_index];
|
||||
} else {
|
||||
BOOST_LOG_TRIVIAL(error) << __FUNCTION__ << "check error: array bound (mapping exist)";
|
||||
}
|
||||
|
@ -2057,6 +2063,7 @@ unsigned int PresetBundle::sync_ams_list(std::vector<std::pair<DynamicPrintConfi
|
|||
continue;
|
||||
}
|
||||
ams_infos[i].filament_preset = ams_filament_presets[i];
|
||||
ams_infos[i].mutli_filament_color = ams_multi_color_filment[i];
|
||||
if (!ams_infos[i].is_map) {
|
||||
need_append_colors.emplace_back(ams_infos[i]);
|
||||
ams_filament_colors[i] = "";
|
||||
|
@ -2098,12 +2105,12 @@ unsigned int PresetBundle::sync_ams_list(std::vector<std::pair<DynamicPrintConfi
|
|||
}
|
||||
exist_filament_presets.push_back(need_append_colors[i].filament_preset);
|
||||
exist_colors.push_back(need_append_colors[i].filament_color);
|
||||
std::vector<std::string> value = {need_append_colors[i].filament_color};
|
||||
ams_multi_color_filment.push_back(value);
|
||||
exist_multi_color_filment.push_back(need_append_colors[i].mutli_filament_color);
|
||||
}
|
||||
}
|
||||
filament_color->resize(exist_colors.size());
|
||||
filament_color->values = exist_colors;
|
||||
ams_multi_color_filment = exist_multi_color_filment;
|
||||
this->filament_presets = exist_filament_presets;
|
||||
filament_map->values.resize(exist_filament_presets.size(), 1);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue