diff --git a/src/slic3r/GUI/Calibration.cpp b/src/slic3r/GUI/Calibration.cpp index e558eb5b4..b6bdf06ac 100644 --- a/src/slic3r/GUI/Calibration.cpp +++ b/src/slic3r/GUI/Calibration.cpp @@ -236,13 +236,6 @@ void CalibrationDialog::update_cali(MachineObject *obj) m_checkbox_list["motor_noise"]->SetValue(false); } - if (!obj->is_calibration_running() && !m_checkbox_list["vibration"]->GetValue() && !m_checkbox_list["bed_leveling"]->GetValue() && !m_checkbox_list["xcam_cali"]->GetValue() && !m_checkbox_list["motor_noise"]->GetValue()) { - m_calibration_btn->Disable(); - m_calibration_btn->SetLabel(_L("No step selected")); - return ; - } else { - m_calibration_btn->Enable(); - } if (obj->is_calibration_running() || obj->is_calibration_done()) { if (obj->is_calibration_done()) { @@ -280,6 +273,14 @@ void CalibrationDialog::update_cali(MachineObject *obj) m_calibration_flow->DeleteAllItems(); m_calibration_btn->SetLabel(_L("Start Calibration")); } + if (!obj->is_calibration_running() && !m_checkbox_list["vibration"]->GetValue() && !m_checkbox_list["bed_leveling"]->GetValue() && + !m_checkbox_list["xcam_cali"]->GetValue() && !m_checkbox_list["motor_noise"]->GetValue()) { + m_calibration_btn->Disable(); + m_calibration_btn->SetLabel(_L("No step selected")); + } + else if(!obj->is_calibration_running()){ + m_calibration_btn->Enable(); + } } bool CalibrationDialog::is_stage_list_info_changed(MachineObject *obj) diff --git a/src/slic3r/GUI/StatusPanel.cpp b/src/slic3r/GUI/StatusPanel.cpp index 3a59e8c7f..db74b2318 100644 --- a/src/slic3r/GUI/StatusPanel.cpp +++ b/src/slic3r/GUI/StatusPanel.cpp @@ -1879,13 +1879,11 @@ void StatusPanel::update(MachineObject *obj) } // update calibration status - if (calibration_dlg == nullptr) { - calibration_dlg = new CalibrationDialog(); - calibration_dlg->update_machine_obj(obj); - } else { + if (calibration_dlg != nullptr) { calibration_dlg->update_machine_obj(obj); + calibration_dlg->update_cali(obj); } - calibration_dlg->update_cali(obj); + if (obj->is_support_first_layer_inspect @@ -3812,9 +3810,11 @@ void StatusPanel::on_start_calibration(wxCommandEvent &event) if (calibration_dlg == nullptr) { calibration_dlg = new CalibrationDialog(); calibration_dlg->update_machine_obj(obj); + calibration_dlg->update_cali(obj); calibration_dlg->ShowModal(); } else { calibration_dlg->update_machine_obj(obj); + calibration_dlg->update_cali(obj); calibration_dlg->ShowModal(); } }