From 26dcf805e6be1dac7f3d6194c5cb07e250ab66c6 Mon Sep 17 00:00:00 2001 From: "maosheng.wei" Date: Mon, 21 Jul 2025 17:43:42 +0800 Subject: [PATCH] FIX: Reset Filament only when the preset is deleted from the current Studio Jira: none Change-Id: I2a8e17b17a97644d69013e38f50bb7b060b17e57 (cherry picked from commit 0c7e6b6676a1fc595e9b99e22d6c9cd00608c314) --- src/slic3r/GUI/DeviceManager.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/slic3r/GUI/DeviceManager.cpp b/src/slic3r/GUI/DeviceManager.cpp index 8c69250d28..2cb5654225 100644 --- a/src/slic3r/GUI/DeviceManager.cpp +++ b/src/slic3r/GUI/DeviceManager.cpp @@ -6834,7 +6834,7 @@ void MachineObject::update_filament_list() } } - for (auto it = m_filament_list.begin(); it != m_filament_list.end(); it++) { m_checked_filament.erase(it->first); } + for (auto it = m_filament_list.begin(); it != m_filament_list.end(); it++) { m_checked_filament.insert(it->first); } m_filament_list = filament_list; } @@ -6902,7 +6902,7 @@ void MachineObject::check_ams_filament_valid() for (const auto &[slot_id, curr_tray] : ams->trayList) { if (curr_tray->setting_id.size() == 8 && curr_tray->setting_id[0] == 'P' && filament_list.find(curr_tray->setting_id) == filament_list.end()) { - if (checked_filament.find(curr_tray->setting_id) == checked_filament.end()) { + if (checked_filament.find(curr_tray->setting_id) != checked_filament.end()) { need_checked_filament_id[nozzle_diameter_str].insert(curr_tray->setting_id); wxColour color = *wxWHITE; char col_buf[10]; @@ -6919,7 +6919,7 @@ void MachineObject::check_ams_filament_valid() } } if (curr_tray->setting_id.size() == 8 && curr_tray->setting_id[0] == 'P' && curr_tray->nozzle_temp_min != "" && curr_tray->nozzle_temp_max != "") { - if (checked_filament.find(curr_tray->setting_id) == checked_filament.end()) { + if (checked_filament.find(curr_tray->setting_id) != checked_filament.end()) { need_checked_filament_id[nozzle_diameter_str].insert(curr_tray->setting_id); try { std::string preset_setting_id; @@ -6962,7 +6962,7 @@ void MachineObject::check_ams_filament_valid() auto &checked_filament = data.checked_filament; auto &filament_list = data.filament_list; if (vt_tray.setting_id.size() == 8 && vt_tray.setting_id[0] == 'P' && filament_list.find(vt_tray.setting_id) == filament_list.end()) { - if (checked_filament.find(vt_tray.setting_id) == checked_filament.end()) { + if (checked_filament.find(vt_tray.setting_id) != checked_filament.end()) { need_checked_filament_id[nozzle_diameter_str].insert(vt_tray.setting_id); wxColour color = *wxWHITE; char col_buf[10]; @@ -6977,7 +6977,7 @@ void MachineObject::check_ams_filament_valid() } } if (vt_tray.setting_id.size() == 8 && vt_tray.setting_id[0] == 'P' && vt_tray.nozzle_temp_min != "" && vt_tray.nozzle_temp_max != "") { - if (checked_filament.find(vt_tray.setting_id) == checked_filament.end()) { + if (checked_filament.find(vt_tray.setting_id) != checked_filament.end()) { need_checked_filament_id[nozzle_diameter_str].insert(vt_tray.setting_id); try { std::string preset_setting_id; @@ -7008,7 +7008,7 @@ void MachineObject::check_ams_filament_valid() auto &diameter = diameter_pair.first; auto &data = diameter_pair.second; for (auto &filament_id : need_checked_filament_id[diameter]) { - data.checked_filament.insert(filament_id); + data.checked_filament.erase(filament_id); } } }