From 334eb365591207c6e498e6477ff58893d3467387 Mon Sep 17 00:00:00 2001 From: tao wang Date: Sat, 1 Jul 2023 17:09:53 +0800 Subject: [PATCH] ENH:check if filling auto backup is supported Change-Id: Iebc9843e16ebf6c7be895be80731f7b70520b765 --- src/slic3r/GUI/DeviceManager.cpp | 5 +++++ src/slic3r/GUI/DeviceManager.hpp | 1 + src/slic3r/GUI/StatusPanel.cpp | 7 ++++--- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/slic3r/GUI/DeviceManager.cpp b/src/slic3r/GUI/DeviceManager.cpp index 5cad11fff..86a4a34e4 100644 --- a/src/slic3r/GUI/DeviceManager.cpp +++ b/src/slic3r/GUI/DeviceManager.cpp @@ -2326,6 +2326,7 @@ void MachineObject::reset() print_status = ""; last_mc_print_stage = -1; m_new_ver_list_exist = false; + m_is_support_show_bak = false; extruder_axis_status = LOAD; nozzle_diameter = 0.0f; @@ -2938,6 +2939,7 @@ int MachineObject::parse_json(std::string payload) /*get filam_bak*/ try { if (jj.contains("filam_bak")) { + m_is_support_show_bak = true; filam_bak.clear(); if (jj["filam_bak"].is_array()) { for (auto it = jj["filam_bak"].begin(); it != jj["filam_bak"].end(); it++) { @@ -2945,6 +2947,9 @@ int MachineObject::parse_json(std::string payload) } } } + else { + m_is_support_show_bak = false; + } } catch (...) { ; diff --git a/src/slic3r/GUI/DeviceManager.hpp b/src/slic3r/GUI/DeviceManager.hpp index fd1c2008e..840268eb3 100644 --- a/src/slic3r/GUI/DeviceManager.hpp +++ b/src/slic3r/GUI/DeviceManager.hpp @@ -495,6 +495,7 @@ public: std::string product_name; // set by iot service, get /user/print std::vector filam_bak; + bool m_is_support_show_bak{false}; std::string bind_user_name; std::string bind_user_id; diff --git a/src/slic3r/GUI/StatusPanel.cpp b/src/slic3r/GUI/StatusPanel.cpp index 86b6fd304..28aa7a32e 100644 --- a/src/slic3r/GUI/StatusPanel.cpp +++ b/src/slic3r/GUI/StatusPanel.cpp @@ -2025,6 +2025,9 @@ void StatusPanel::update_ams(MachineObject *obj) if (!obj || !obj->is_connected() || obj->amsList.empty() + || !is_support_filament_backup + || !obj->ams_auto_switch_filament_flag + || !obj->m_is_support_show_bak || obj->ams_exist_bits == 0) { if (!obj || !obj->is_connected()) { last_tray_exist_bits = -1; @@ -2040,10 +2043,8 @@ void StatusPanel::update_ams(MachineObject *obj) m_ams_control->show_auto_refill(false); } else { - show_ams_group(true, obj->is_function_supported(PrinterFunction::FUNC_VIRTUAL_TYAY), is_support_extrusion_cali, obj->is_support_filament_edit_virtual_tray); - m_ams_control->show_auto_refill(is_support_filament_backup); - if(is_support_filament_backup) m_ams_control->show_auto_refill(obj->ams_auto_switch_filament_flag); + m_ams_control->show_auto_refill(true); }