diff --git a/src/slic3r/GUI/SelectMachine.cpp b/src/slic3r/GUI/SelectMachine.cpp index c61b4dc11..90cfcffa5 100644 --- a/src/slic3r/GUI/SelectMachine.cpp +++ b/src/slic3r/GUI/SelectMachine.cpp @@ -27,6 +27,7 @@ namespace Slic3r { namespace GUI { +wxDEFINE_EVENT(EVT_SWITCH_PRINT_OPTION, wxCommandEvent); wxDEFINE_EVENT(EVT_UPDATE_USER_MACHINE_LIST, wxCommandEvent); wxDEFINE_EVENT(EVT_PRINT_JOB_CANCEL, wxCommandEvent); wxDEFINE_EVENT(EVT_CLEAR_IPADDRESS, wxCommandEvent); @@ -625,6 +626,11 @@ SelectMachineDialog::SelectMachineDialog(Plater *plater) ops_no_auto ); + option_use_ams->Bind(EVT_SWITCH_PRINT_OPTION, [this](auto& e) { + m_ams_mapping_result.clear(); + sync_ams_mapping_result(m_ams_mapping_result); + }); + option_use_ams->setValue("off"); m_sizer_options_timelapse->Add(option_timelapse, 0, wxEXPAND | wxTOP | wxBOTTOM, FromDIP(5)); m_sizer_options_other->Add(option_auto_bed_level, 0, wxEXPAND | wxTOP | wxBOTTOM, FromDIP(5)); @@ -2915,26 +2921,19 @@ void SelectMachineDialog::update_flow_cali_check(MachineObject* obj) void SelectMachineDialog::update_ams_check(MachineObject *obj) { - /*if (!obj) {return;} + if (!obj) {return;} - if (obj->is_enable_np) { - m_checkbox_list["use_ams"]->Hide(); - m_checkbox_list["use_ams"]->setValue("on"); - } - else { + if (!obj->is_enable_np) { if (obj->has_ams()) { m_checkbox_list["use_ams"]->Show(); m_checkbox_list["use_ams"]->setValue("on"); - } else { + } + else { m_checkbox_list["use_ams"]->Hide(); m_checkbox_list["use_ams"]->setValue("off"); } - }*/ - - if (obj && obj->has_ams() && !obj->is_enable_np) { - m_checkbox_list["use_ams"]->Show(); - } - if (obj && obj->is_enable_np) { + }else{ + m_checkbox_list["use_ams"]->Hide(); m_checkbox_list["use_ams"]->setValue("on"); } } @@ -3027,10 +3026,6 @@ void SelectMachineDialog::update_show_status() } } - //if (!obj_->has_ams() || !(m_checkbox_list["use_ams"]->getValue() == "on")) { - // clean_ams_mapping = true; - //} - if (clean_ams_mapping) { m_ams_mapping_result.clear(); sync_ams_mapping_result(m_ams_mapping_result); @@ -4484,7 +4479,6 @@ void PrintOptionItem::on_left_down(wxMouseEvent &evt) } i++; } - Refresh(); if (!m_param.empty()) { AppConfig *config = wxGetApp().app_config; @@ -4494,6 +4488,13 @@ void PrintOptionItem::on_left_down(wxMouseEvent &evt) config->set_str("print", m_param, "0"); } } + + wxCommandEvent event(EVT_SWITCH_PRINT_OPTION); + event.SetString(selected_key); + event.SetEventObject(GetParent()); + wxPostEvent(GetParent(), event); + + Refresh(); } void PrintOptionItem::doRender(wxDC &dc) diff --git a/src/slic3r/GUI/SelectMachine.hpp b/src/slic3r/GUI/SelectMachine.hpp index fc43ec0b3..11413c6d6 100644 --- a/src/slic3r/GUI/SelectMachine.hpp +++ b/src/slic3r/GUI/SelectMachine.hpp @@ -454,6 +454,11 @@ public: PrintDialogStatus get_status() { return m_print_status; } std::vector sort_string(std::vector strArray); }; + + + +wxDECLARE_EVENT(EVT_SWITCH_PRINT_OPTION, wxCommandEvent); + }} // namespace Slic3r::GUI #endif