ENH: remeber extrusion cali preset in MachineObject

Change-Id: I32fcf6355ce948fc02c584b8639eb96fe2b444b5
Signed-off-by: Stone Li <stone.li@bambulab.com>
This commit is contained in:
Stone Li 2023-05-23 09:06:11 +08:00 committed by Lane.Wei
parent 0d656621bf
commit 030275a5a1
3 changed files with 21 additions and 5 deletions

View file

@ -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();

View file

@ -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) {

View file

@ -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()) {