From d1de8c47d7f066b77d0b710d120424a3f8fabafb Mon Sep 17 00:00:00 2001 From: "chunmao.guo" Date: Thu, 16 Jan 2025 11:31:43 +0800 Subject: [PATCH] ENH: sync ams info to extruder group Change-Id: Id0aace998a759c6e91aabb2685306e54e06d152e Jira: STUDIO-9828 (cherry picked from commit 2bae63e3819bc2dc04dc64c1d53b10d2f04edeff) --- src/slic3r/GUI/Plater.cpp | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index 6ac5e9bb82..051c28e388 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -394,8 +394,10 @@ struct ExtruderGroup : StaticGroup return; ams_n4 = n4; ams_n1 = n1; + if (btn_edit) { - update_ams(); + if (GUI::wxGetApp().plater()) + GUI::wxGetApp().plater()->update_machine_sync_status(); } } @@ -1748,15 +1750,9 @@ Sidebar::Sidebar(Plater *parent) p->single_extruder = new ExtruderGroup(p->m_panel_printer_content, -1, _L("Nozzle")); auto switch_diameter = [this](wxCommandEvent & evt) { auto extruder = dynamic_cast(dynamic_cast(evt.GetEventObject())->GetParent()); + p->is_switching_diameter = true; auto result = p->switch_diameter(extruder == p->single_extruder); - if (result) { - if (extruder != p->single_extruder) { - extruder->combo_diameter->SetSelection(evt.GetInt()); - extruder->diameter = evt.GetString(); - } - } else { - extruder->combo_diameter->SetValue(extruder->diameter); - } + p->is_switching_diameter = false; }; p->left_extruder->combo_diameter->Bind(wxEVT_COMBOBOX, switch_diameter); p->right_extruder->combo_diameter->Bind(wxEVT_COMBOBOX, switch_diameter); @@ -2364,12 +2360,15 @@ void Sidebar::update_presets(Preset::Type preset_type) if (is_dual_extruder) { AMSCountPopupWindow::UpdateAMSCount(0, p->left_extruder); AMSCountPopupWindow::UpdateAMSCount(1, p->right_extruder); - update_extruder_diameter(*p->left_extruder); - update_extruder_diameter(*p->right_extruder); + if (!p->is_switching_diameter) { + update_extruder_diameter(*p->left_extruder); + update_extruder_diameter(*p->right_extruder); + } p->image_printer_bed->SetBitmap(create_scaled_bitmap(image_path, this, 48)); } else { AMSCountPopupWindow::UpdateAMSCount(0, p->single_extruder); - update_extruder_diameter(*p->single_extruder); + if (!p->is_switching_diameter) + update_extruder_diameter(*p->single_extruder); p->image_printer_bed->SetBitmap(create_scaled_bitmap(image_path, this, 32)); }