FIX: The status of cali is not correct when switch printer

Jira: STUDIO-4782
Change-Id: I9894e4c84bf30f1fbb3b833f5ed4f40c9cb01be7
This commit is contained in:
zhimin.zeng 2023-10-24 14:39:55 +08:00 committed by Lane.Wei
parent 82684b1d20
commit 5503c59c1e
4 changed files with 9 additions and 7 deletions

View File

@ -973,7 +973,7 @@ void AppConfig::set_vendors(const AppConfig &from)
m_dirty = true;
}
void AppConfig::save_printer_cali_infos(const PrinterCaliInfo &cali_info)
void AppConfig::save_printer_cali_infos(const PrinterCaliInfo &cali_info, bool need_change_status)
{
auto iter = std::find_if(m_printer_cali_infos.begin(), m_printer_cali_infos.end(), [&cali_info](const PrinterCaliInfo &cali_info_item) {
return cali_info_item.dev_id == cali_info.dev_id;
@ -982,7 +982,9 @@ void AppConfig::save_printer_cali_infos(const PrinterCaliInfo &cali_info)
if (iter == m_printer_cali_infos.end()) {
m_printer_cali_infos.emplace_back(cali_info);
} else {
(*iter).cali_finished = cali_info.cali_finished;
if (need_change_status) {
(*iter).cali_finished = cali_info.cali_finished;
}
(*iter).cache_flow_ratio = cali_info.cache_flow_ratio;
(*iter).selected_presets = cali_info.selected_presets;
}

View File

@ -180,7 +180,7 @@ public:
}
const std::vector<PrinterCaliInfo> &get_printer_cali_infos() const { return m_printer_cali_infos; }
void save_printer_cali_infos(const PrinterCaliInfo& cali_info);
void save_printer_cali_infos(const PrinterCaliInfo& cali_info, bool need_change_status = true);
// return recent/last_opened_folder or recent/settings_folder or empty string.
std::string get_last_dir() const;

View File

@ -299,14 +299,14 @@ void CalibrationWizard::recover_preset_info(MachineObject *obj)
}
}
void CalibrationWizard::back_preset_info(MachineObject *obj, bool cali_finish)
void CalibrationWizard::back_preset_info(MachineObject *obj, bool cali_finish, bool back_cali_flag)
{
PrinterCaliInfo printer_cali_info;
printer_cali_info.dev_id = obj->dev_id;
printer_cali_info.cali_finished = cali_finish;
printer_cali_info.cache_flow_ratio = obj->cache_flow_ratio;
printer_cali_info.selected_presets = obj->selected_cali_preset;
wxGetApp().app_config->save_printer_cali_infos(printer_cali_info);
wxGetApp().app_config->save_printer_cali_infos(printer_cali_info, back_cali_flag);
}
void CalibrationWizard::msw_rescale()
@ -361,7 +361,7 @@ void CalibrationWizard::on_cali_go_home()
go_home_dialog->on_show();
} else {
if (!m_page_steps.empty()) {
back_preset_info(curr_obj, true);
back_preset_info(curr_obj, true, obj_cali_mode == m_mode);
show_step(m_page_steps.front());
}
}

View File

@ -64,7 +64,7 @@ public:
virtual void cache_preset_info(MachineObject* obj, float nozzle_dia);
virtual void recover_preset_info(MachineObject *obj);
virtual void back_preset_info(MachineObject *obj, bool cali_finish);
virtual void back_preset_info(MachineObject *obj, bool cali_finish, bool back_cali_flag = true);
void msw_rescale();
void on_sys_color_changed();