diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index 62cd73799..9ee96b722 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -685,8 +685,20 @@ void Sidebar::priv::sync_extruder_list() auto printer_tab = dynamic_cast(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); } diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp index 8dd047e76..3b0d282e1 100644 --- a/src/slic3r/GUI/Tab.cpp +++ b/src/slic3r/GUI/Tab.cpp @@ -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;