FIX: impl sync extruder information & fix something

Change-Id: I5f7224f646729cba94505487d00015a8e48443c5
This commit is contained in:
chunmao.guo 2024-07-08 16:32:21 +08:00 committed by lane.wei
parent 507c6a9b2c
commit 26bf483bfe
2 changed files with 17 additions and 2 deletions

View File

@ -685,8 +685,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);
}

View File

@ -3926,6 +3926,7 @@ void TabPrinter::build_unregular_pages(bool from_initial_build/* = false*/)
// }
//}
on_value_change(opt_key, value);
update_dirty();
update();
};
@ -5010,6 +5011,8 @@ bool Tab::tree_sel_change_delayed(wxCommandEvent& event)
// update_undo_buttons();
this->OnActivate();
m_parent->set_active_tab(this);
m_main_sizer->Show(m_extruder_switch, !m_active_page->m_opt_id_map.empty());
GetParent()->Layout();
m_page_view->Thaw();
return false;