diff --git a/resources/images/ext_image_right.svg b/resources/images/ext_image_right.svg new file mode 100644 index 000000000..0c9cfe385 --- /dev/null +++ b/resources/images/ext_image_right.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/slic3r/GUI/StatusPanel.cpp b/src/slic3r/GUI/StatusPanel.cpp index 271a60bc4..d06d488a9 100644 --- a/src/slic3r/GUI/StatusPanel.cpp +++ b/src/slic3r/GUI/StatusPanel.cpp @@ -2647,6 +2647,7 @@ void StatusPanel::update_ams(MachineObject *obj) ext_info.push_back(info); } std::string dev_id = obj->dev_id; + int nozzle_num = obj->m_nozzle_data.total_nozzle_count; //if (obj->ams_exist_bits != last_ams_exist_bits || obj->tray_exist_bits != last_tray_exist_bits || obj->tray_is_bbl_bits != last_tray_is_bbl_bits || // obj->tray_read_done_bits != last_read_done_bits || obj->ams_version != last_ams_version) { // m_ams_control->UpdateAms(ams_info, false); @@ -2661,7 +2662,7 @@ void StatusPanel::update_ams(MachineObject *obj) //} // must select a current can - m_ams_control->UpdateAms(ams_info, ext_info, dev_id, false); + m_ams_control->UpdateAms(ams_info, ext_info, nozzle_num, dev_id, false); last_tray_exist_bits = obj->tray_exist_bits; last_ams_exist_bits = obj->ams_exist_bits; diff --git a/src/slic3r/GUI/Widgets/AMSControl.cpp b/src/slic3r/GUI/Widgets/AMSControl.cpp index 1635ab8cc..8e0949681 100644 --- a/src/slic3r/GUI/Widgets/AMSControl.cpp +++ b/src/slic3r/GUI/Widgets/AMSControl.cpp @@ -3330,6 +3330,10 @@ void AMSControl::ClearAms() { m_ams_item_list.clear(); m_sizer_items_right->Clear(); m_sizer_items_left->Clear(); + m_left_page_index = 0; + m_right_page_index = 0; + + m_item_ids = { {}, {} }; } void AMSControl::CreateAmsNew() @@ -3783,14 +3787,9 @@ void AMSControl::ReadExtInfo(MachineObject* obj) { } } -void AMSControl::UpdateAms(std::vector ams_info, std::vectorext_info, std::string dev_id, bool is_reset, bool test) +void AMSControl::UpdateAms(std::vector ams_info, std::vectorext_info, int nozzle_num, std::string dev_id, bool is_reset, bool test) { if (!test){ - /*std::string curr_ams_id = GetCurentAms(); - std::string curr_can_id = GetCurrentCan(curr_ams_id);*/ - - int nozzle_num = ext_info.size(); - // update item bool fresh = false; if (m_ams_info.size() == ams_info.size() && m_nozzle_num == nozzle_num && m_dev_id == dev_id){ @@ -3817,15 +3816,9 @@ void AMSControl::UpdateAms(std::vector ams_info, std::vectorex } m_ams_preview_list.clear(); ClearAms(); - m_left_page_index = 0; - m_right_page_index = 0; if (m_nozzle_num >= 2){ CreateAmsNew(); - m_ams_item_list; }else{ - /*m_panel_items_right->ClearBackground(); - m_panel_items_left->ClearBackground();*/ - m_item_ids = { {}, {} }; pair_id.clear(); CreateAmsSingleNozzle(); diff --git a/src/slic3r/GUI/Widgets/AMSControl.hpp b/src/slic3r/GUI/Widgets/AMSControl.hpp index 2523636e1..aef3aa72f 100644 --- a/src/slic3r/GUI/Widgets/AMSControl.hpp +++ b/src/slic3r/GUI/Widgets/AMSControl.hpp @@ -160,7 +160,7 @@ public: void CreateAmsNew(); void CreateAmsSingleNozzle(); void ClearAms(); - void UpdateAms(std::vector ams_info, std::vector ext_info, std::string dev_id, bool is_reset = true, bool test = false); + void UpdateAms(std::vector ams_info, std::vector ext_info, int nozzle_num, std::string dev_id, bool is_reset = true, bool test = false); void ReadExtInfo(MachineObject* obj); void AddAms(AMSinfo info, bool left = true);