From 030275a5a17e5c21107e5dab9bfd1ad488a7210b Mon Sep 17 00:00:00 2001 From: Stone Li Date: Tue, 23 May 2023 09:06:11 +0800 Subject: [PATCH] ENH: remeber extrusion cali preset in MachineObject Change-Id: I32fcf6355ce948fc02c584b8639eb96fe2b444b5 Signed-off-by: Stone Li --- src/slic3r/GUI/DeviceManager.hpp | 1 + src/slic3r/GUI/ExtrusionCalibration.cpp | 10 ++++++++++ src/slic3r/GUI/StatusPanel.cpp | 15 ++++++++++----- 3 files changed, 21 insertions(+), 5 deletions(-) diff --git a/src/slic3r/GUI/DeviceManager.hpp b/src/slic3r/GUI/DeviceManager.hpp index ba4b5b023..3f65324c4 100644 --- a/src/slic3r/GUI/DeviceManager.hpp +++ b/src/slic3r/GUI/DeviceManager.hpp @@ -487,6 +487,7 @@ public: std::chrono::system_clock::time_point last_extrusion_cali_start_time; int extrusion_cali_set_tray_id = -1; std::chrono::system_clock::time_point extrusion_cali_set_hold_start; + std::string extrusion_cali_filament_name; bool is_in_extrusion_cali(); bool is_extrusion_cali_finished(); diff --git a/src/slic3r/GUI/ExtrusionCalibration.cpp b/src/slic3r/GUI/ExtrusionCalibration.cpp index d08afec0a..f6134f145 100644 --- a/src/slic3r/GUI/ExtrusionCalibration.cpp +++ b/src/slic3r/GUI/ExtrusionCalibration.cpp @@ -675,6 +675,11 @@ void ExtrusionCalibration::update_combobox_filaments() curr_selection = filament_index; } + if (filament_it->name == obj->extrusion_cali_filament_name && !obj->extrusion_cali_filament_name.empty()) + { + curr_selection = filament_index; + } + wxString filament_name = wxString::FromUTF8(filament_it->name); filament_items.Add(filament_name); break; @@ -784,6 +789,11 @@ void ExtrusionCalibration::update_filament_info() if (filament_name.compare(m_comboBox_filament->GetValue()) == 0) { m_filament_type = filament_it->name; + if (obj) { + obj->extrusion_cali_filament_name = filament_it->name; + BOOST_LOG_TRIVIAL(info) << "set extrusion cali filament name = " << obj->extrusion_cali_filament_name; + } + // update nozzle temperature ConfigOption* opt_nozzle_temp = filament_it->config.option("nozzle_temperature"); if (opt_nozzle_temp) { diff --git a/src/slic3r/GUI/StatusPanel.cpp b/src/slic3r/GUI/StatusPanel.cpp index c2dc7d9a3..a719f1f55 100644 --- a/src/slic3r/GUI/StatusPanel.cpp +++ b/src/slic3r/GUI/StatusPanel.cpp @@ -2237,12 +2237,17 @@ void StatusPanel::update_ams_control_state(bool is_support_virtual_tray, bool is enable[ACTION_BTN_CALI] = false; } else { - if (obj->is_in_extrusion_cali()) { - enable[ACTION_BTN_LOAD] = false; - enable[ACTION_BTN_UNLOAD] = false; + if (obj->is_in_printing()) { + if (obj->is_in_extrusion_cali()) { + enable[ACTION_BTN_LOAD] = false; + enable[ACTION_BTN_UNLOAD] = false; + enable[ACTION_BTN_CALI] = true; + } else { + enable[ACTION_BTN_CALI] = false; + } + } else { enable[ACTION_BTN_CALI] = true; - } else - enable[ACTION_BTN_CALI] = false; + } } if (obj->is_in_printing() && !obj->can_resume()) {