diff --git a/src/slic3r/GUI/AMSMaterialsSetting.cpp b/src/slic3r/GUI/AMSMaterialsSetting.cpp index 23e00b23e..20a969739 100644 --- a/src/slic3r/GUI/AMSMaterialsSetting.cpp +++ b/src/slic3r/GUI/AMSMaterialsSetting.cpp @@ -413,7 +413,13 @@ void AMSMaterialsSetting::update() void AMSMaterialsSetting::enable_confirm_button(bool en) { - m_button_confirm->Show(en); + if (!en) { + m_button_confirm->Show(obj->is_support_filament_setting_inprinting); + } + else { + m_button_confirm->Show(en); + } + if (!m_is_third) { m_tip_readonly->Hide(); } @@ -705,7 +711,7 @@ void AMSMaterialsSetting::on_picker_color(wxCommandEvent& event) void AMSMaterialsSetting::on_clr_picker(wxMouseEvent &event) { - if(!m_is_third || obj->is_in_printing() || obj->can_resume()) + if(!m_is_third || !obj->is_support_filament_setting_inprinting) return; @@ -922,8 +928,8 @@ void AMSMaterialsSetting::Popup(wxString filament, wxString sn, wxString temp_mi } m_button_reset->Show(); - m_button_confirm->Show(); - } + //m_button_confirm->Show(); + } m_comboBox_filament->Set(filament_items); m_comboBox_filament->SetSelection(selection_idx); diff --git a/src/slic3r/GUI/DeviceManager.cpp b/src/slic3r/GUI/DeviceManager.cpp index 3535dbfd2..214ddc198 100644 --- a/src/slic3r/GUI/DeviceManager.cpp +++ b/src/slic3r/GUI/DeviceManager.cpp @@ -3206,6 +3206,12 @@ int MachineObject::parse_json(std::string payload, bool key_field_only) mc_print_line_number = atoi(jj["mc_print_line_number"].get().c_str()); } } + if (!key_field_only) { + if (jj.contains("flag3")) { + int flag3 = jj["flag3"].get(); + is_support_filament_setting_inprinting = get_flag_bits(flag3, 3); + } + } if (!key_field_only) { if (jj.contains("net")) { if (jj["net"].contains("conf")) { @@ -4361,6 +4367,14 @@ int MachineObject::parse_json(std::string payload, bool key_field_only) } } } else if (jj["command"].get() == "ams_filament_setting" && !key_field_only) { + if (jj.contains("result") && jj.contains("reason")) { + if (jj["result"].get() == "fail") { + auto err_code = jj["err_code"].get(); + print_error = err_code; + } + } + + // BBS trigger ams UI update ams_version = -1; diff --git a/src/slic3r/GUI/DeviceManager.hpp b/src/slic3r/GUI/DeviceManager.hpp index ebc34e34a..2d22b1f6f 100644 --- a/src/slic3r/GUI/DeviceManager.hpp +++ b/src/slic3r/GUI/DeviceManager.hpp @@ -762,6 +762,7 @@ public: bool is_support_p1s_plus{false}; bool is_support_nozzle_blob_detection{false}; bool is_support_air_print_detection{false}; + bool is_support_filament_setting_inprinting{false}; int nozzle_max_temperature = -1; int bed_temperature_limit = -1;