FIX: impl sync extruder information & fix something

Change-Id: I5f7224f646729cba94505487d00015a8e48443c5
(cherry picked from commit 26bf483bfe089cc6730e1c1da452497feb320520)
This commit is contained in:
chunmao.guo
2024-07-08 16:32:21 +08:00
committed by Noisyfox
parent 76a8cc6ba4
commit 9433db8d54
2 changed files with 17 additions and 2 deletions

View File

@@ -739,8 +739,20 @@ void Sidebar::priv::sync_extruder_list()
auto printer_tab = dynamic_cast<TabPrinter *>(wxGetApp().get_tab(Preset::TYPE_PRINTER));
printer_tab->set_extruder_volume_type(0, NozzleVolumeType::nvtBigTraffic);
printer_tab->set_extruder_volume_type(1, NozzleVolumeType::nvtNormal);
AMSCountPopupWindow::SetAMSCount(0, 0, 0);
AMSCountPopupWindow::SetAMSCount(1, 1, 1);
MachineObject *obj = wxGetApp().getDeviceManager()->get_selected_machine();
if (obj == nullptr) {
MessageDialog dlg(this->plater, _L("Please select a printer in 'Device' page first."), _L("Sync extruder infomation"), wxOK);
dlg.ShowModal();
return;
}
int left = 0, right = 0;
for (auto ams : obj->amsList) {
// Main (first) extruder at right
if (ams.second->nozzle == 0) ++right;
else ++left;
}
AMSCountPopupWindow::SetAMSCount(0, left, obj->vt_slot.size() > 1);
AMSCountPopupWindow::SetAMSCount(1, right, 1);
AMSCountPopupWindow::UpdateAMSCount(0, m_left_ams_count);
AMSCountPopupWindow::UpdateAMSCount(1, m_right_ams_count);
}