FIX: fix error sync when switch third part preset

jira: STUDIO-10443
Change-Id: I5cf8c2af9945cf19a7bd2819379e4a782299343e
This commit is contained in:
zhimin.zeng 2025-02-15 11:29:59 +08:00 committed by lane.wei
parent 3309a40d42
commit 263180ddf0
1 changed files with 13 additions and 2 deletions

View File

@ -8092,8 +8092,19 @@ void Plater::priv::on_select_preset(wxCommandEvent &evt)
MachineObject *obj = dev->get_selected_machine();
if (obj && obj->is_multi_extruders()) {
PresetBundle *preset_bundle = wxGetApp().preset_bundle;
if (preset_bundle->printers.get_edited_preset().get_printer_type(preset_bundle) == obj->printer_type) {
GUI::wxGetApp().sidebar().sync_extruder_list();
Preset& cur_preset = preset_bundle->printers.get_edited_preset();
if (cur_preset.get_printer_type(preset_bundle) == obj->printer_type) {
double preset_nozzle_diameter = cur_preset.config.option<ConfigOptionFloatsNullable>("nozzle_diameter")->values[0];
bool same_nozzle_diameter = true;
for (const Extder &extruder : obj->m_extder_data.extders) {
if (!is_approx(extruder.current_nozzle_diameter, float(preset_nozzle_diameter))) {
same_nozzle_diameter = false;
}
}
if (cur_preset.is_system || (!cur_preset.is_system && same_nozzle_diameter)) {
GUI::wxGetApp().sidebar().sync_extruder_list();
}
}
}
}