From 99ec1acc276800b8fcfe933fb224156a7890a7a6 Mon Sep 17 00:00:00 2001 From: "xin.zhang" Date: Fri, 7 Mar 2025 18:12:12 +0800 Subject: [PATCH] FIX: update the panel jira: [STUDIO-9241] Change-Id: I9a309594814e0547f7a6ef247ad710636f478b79 --- src/slic3r/GUI/Widgets/FanControl.cpp | 17 ++++++++++------- src/slic3r/GUI/Widgets/FanControl.hpp | 1 + 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/slic3r/GUI/Widgets/FanControl.cpp b/src/slic3r/GUI/Widgets/FanControl.cpp index 808db8c7c..57fcc281f 100644 --- a/src/slic3r/GUI/Widgets/FanControl.cpp +++ b/src/slic3r/GUI/Widgets/FanControl.cpp @@ -707,21 +707,24 @@ void FanControlPopupNew::UpdateParts(int mode_id) { Freeze(); - m_sizer_fanControl->Clear(true); for (const auto& part : m_data.parts) { auto part_id = part.id; - auto part_func = part.func; auto part_name = fan_func_name[AIR_FUN(part_id)]; - auto part_state = part.state; - auto fan_control = new FanControlNew(this, m_data, mode_id, part_id, wxID_ANY, wxDefaultPosition, wxDefaultSize); + auto fan_control = m_fan_control_list[part_id]; + if (!fan_control) + { + fan_control = new FanControlNew(this, m_data, mode_id, part_id, wxID_ANY, wxDefaultPosition, wxDefaultSize); + m_fan_control_list[part_id] = fan_control; + m_sizer_fanControl->Add(fan_control, 0, wxALL, FromDIP(5)); + } fan_control->set_machine_obj(m_obj); fan_control->set_name(part_name); - - m_fan_control_list[part_id] = fan_control; - m_sizer_fanControl->Add(fan_control, 0, wxALL, FromDIP(5)); + fan_control->update_fan_data(m_data); + fan_control->set_mode_id(mode_id); + fan_control->update_mode(); } m_sizer_fanControl->Layout(); diff --git a/src/slic3r/GUI/Widgets/FanControl.hpp b/src/slic3r/GUI/Widgets/FanControl.hpp index 6e9904004..c29a31791 100644 --- a/src/slic3r/GUI/Widgets/FanControl.hpp +++ b/src/slic3r/GUI/Widgets/FanControl.hpp @@ -163,6 +163,7 @@ public: bool check_printing_state(); void set_machine_obj(MachineObject *obj); void set_name(wxString name); + void set_mode_id(int id) { m_mode_id = id;} void set_part_id(int id){m_part_id = id;}; void set_fan_speed(int g); void set_fan_speed_percent(int speed);