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);