From ab54fb6c80c9f6af044c00ec530bfa10cabc45c7 Mon Sep 17 00:00:00 2001 From: "liz.li" Date: Thu, 6 Jul 2023 19:43:19 +0800 Subject: [PATCH] FIX: clear last job status Change-Id: I91c406c45c9e9d2a1c08048849a45babc41bb564 --- src/slic3r/GUI/CalibrationWizard.cpp | 15 ++++++++++++--- src/slic3r/GUI/CalibrationWizardCaliPage.cpp | 15 ++++++++++++++- src/slic3r/GUI/CalibrationWizardCaliPage.hpp | 3 +++ 3 files changed, 29 insertions(+), 4 deletions(-) diff --git a/src/slic3r/GUI/CalibrationWizard.cpp b/src/slic3r/GUI/CalibrationWizard.cpp index 0b3db5a3d..8595d83a4 100644 --- a/src/slic3r/GUI/CalibrationWizard.cpp +++ b/src/slic3r/GUI/CalibrationWizard.cpp @@ -357,7 +357,7 @@ void PressureAdvanceWizard::on_device_connected(MachineObject* obj) if (m_curr_step != cali_step) { if (obj_cali_mode == m_mode) { - if (obj->is_in_printing() || obj->is_printing_finished()) { + if (obj->is_in_printing() /*|| obj->is_printing_finished()*/ || obj->print_status == "FINISH") { CalibrationWizard::set_cali_method(method); show_step(cali_step); } @@ -494,6 +494,9 @@ void PressureAdvanceWizard::on_cali_start() } show_step(m_curr_step->next); + + CalibrationCaliPage* cali_page = (static_cast(cali_step->page)); + cali_page->clear_last_job_status(); } void PressureAdvanceWizard::on_cali_save() @@ -829,6 +832,9 @@ void FlowRateWizard::on_cali_start(CaliPresetStage stage, float cali_value, Flow } show_step(m_curr_step->next); + + CalibrationCaliPage* cali_page = (static_cast(cali_step->page)); + cali_page->clear_last_job_status(); } void FlowRateWizard::on_cali_save() @@ -930,7 +936,7 @@ void FlowRateWizard::on_device_connected(MachineObject* obj) if (obj) { this->set_cali_method(method); if (obj_cali_mode == m_mode) { - if (obj->is_in_printing() || obj->is_printing_finished()) { + if (obj->is_in_printing() /*|| obj->is_printing_finished()*/ || obj->print_status == "FINISH") { if (method == CalibrationMethod::CALI_METHOD_MANUAL) { if (cali_stage == 1) { if (m_curr_step != cali_coarse_step) @@ -1143,6 +1149,9 @@ void MaxVolumetricSpeedWizard::on_cali_start() } preset_page->on_cali_start_job(); + + CalibrationCaliPage* cali_page = (static_cast(cali_step->page)); + cali_page->clear_last_job_status(); } void MaxVolumetricSpeedWizard::on_cali_save() @@ -1202,7 +1211,7 @@ void MaxVolumetricSpeedWizard::on_device_connected(MachineObject *obj) if (obj) { this->set_cali_method(method); if (obj_cali_mode == m_mode) { - if (obj->is_in_printing() || obj->is_printing_finished()) { + if (obj->is_in_printing() /*|| obj->is_printing_finished()*/ || obj->print_status == "FINISH") { if (m_curr_step != cali_step) { show_step(cali_step); } diff --git a/src/slic3r/GUI/CalibrationWizardCaliPage.cpp b/src/slic3r/GUI/CalibrationWizardCaliPage.cpp index fdc194c58..128aa6328 100644 --- a/src/slic3r/GUI/CalibrationWizardCaliPage.cpp +++ b/src/slic3r/GUI/CalibrationWizardCaliPage.cpp @@ -115,12 +115,25 @@ void CalibrationCaliPage::set_cali_img() } } +void CalibrationCaliPage::clear_last_job_status() +{ + m_is_between_start_and_running = true; +} + void CalibrationCaliPage::update(MachineObject* obj) { static int get_result_count = 0; // enable calibration when finished bool enable_cali = false; if (obj) { + if (obj->print_status == "RUNNING") + m_is_between_start_and_running = false; + if (m_is_between_start_and_running) { + reset_printing_values(); + m_action_panel->enable_button(CaliPageActionType::CALI_ACTION_NEXT, false); + return; + } + if (m_cali_mode == CalibMode::Calib_PA_Line) { if (m_cali_method == CalibrationMethod::CALI_METHOD_AUTO) { if (get_obj_calibration_mode(obj) == m_cali_mode) { @@ -194,7 +207,7 @@ void CalibrationCaliPage::update(MachineObject* obj) if (get_obj_calibration_mode(obj) == m_cali_mode && obj->is_printing_finished()) { enable_cali = true; } else { - ; + enable_cali = false; } } else { diff --git a/src/slic3r/GUI/CalibrationWizardCaliPage.hpp b/src/slic3r/GUI/CalibrationWizardCaliPage.hpp index d7cf21135..1839a0ff6 100644 --- a/src/slic3r/GUI/CalibrationWizardCaliPage.hpp +++ b/src/slic3r/GUI/CalibrationWizardCaliPage.hpp @@ -26,6 +26,8 @@ public: void update_subtask(MachineObject* obj); void update_basic_print_data(bool def, float weight = 0.0, int prediction = 0); void reset_printing_values(); + void clear_last_job_status(); + void on_device_connected(MachineObject* obj) override; void set_cali_method(CalibrationMethod method) override; @@ -34,6 +36,7 @@ protected: float get_selected_calibration_nozzle_dia(MachineObject* obj); bool m_print_finish {false}; + bool m_is_between_start_and_running { false }; wxBoxSizer* m_top_sizer; CaliPageStepGuide* m_step_panel { nullptr }; PrintingTaskPanel* m_printing_panel { nullptr };