From b59fac368782b3dbfe04bf483a466b1af7610935 Mon Sep 17 00:00:00 2001 From: "xin.zhang" Date: Thu, 15 May 2025 10:37:32 +0800 Subject: [PATCH] ENH: update some check jobs of SelectMachineDialog jira: [STUDIO-11883] Change-Id: I730030c06fa819f06390583a666029b8d7b670f5 --- src/slic3r/GUI/PrePrintChecker.cpp | 2 +- src/slic3r/GUI/PrePrintChecker.hpp | 18 +++++++++--------- src/slic3r/GUI/SelectMachine.cpp | 21 ++++++++++----------- 3 files changed, 20 insertions(+), 21 deletions(-) diff --git a/src/slic3r/GUI/PrePrintChecker.cpp b/src/slic3r/GUI/PrePrintChecker.cpp index 8bf8291da..37e058e53 100644 --- a/src/slic3r/GUI/PrePrintChecker.cpp +++ b/src/slic3r/GUI/PrePrintChecker.cpp @@ -83,7 +83,7 @@ wxString PrePrintChecker::get_pre_state_msg(PrintDialogStatus status) case PrintStatusWarningKvalueNotUsed: return _L("Set dynamic flow calibration to 'OFF' to enable custom dynamic flow value."); case PrintStatusNotSupportedPrintAll: return _L("This printer does not support printing all plates"); case PrintStatusWarningTpuRightColdPulling: return _L("Please cold pull before printing TPU to avoid clogging. You may use cold pull maintenance on the printer."); - case PrintStatusFilamentHighChamberTempCloseDoor: return _L("High chamber temperature is required. Please close the door."); + case PrintStatusFilamentWarningHighChamberTempCloseDoor: return _L("High chamber temperature is required. Please close the door."); } return wxEmptyString; } diff --git a/src/slic3r/GUI/PrePrintChecker.hpp b/src/slic3r/GUI/PrePrintChecker.hpp index ecce1da8d..30c464d38 100644 --- a/src/slic3r/GUI/PrePrintChecker.hpp +++ b/src/slic3r/GUI/PrePrintChecker.hpp @@ -87,9 +87,9 @@ enum PrintDialogStatus : unsigned int { PrintStatusWarningKvalueNotUsed, PrintStatusWarningTpuRightColdPulling, PrintStatusHasFilamentInBlackListWarning, - PrintStatusFilamentHighChamberTempCloseDoor, - PrintStatusFilamentHighChamberTempSoft, - PrintStatusUnknownFilamentHighChamberTempSoft, + PrintStatusFilamentWarningHighChamberTempCloseDoor, + PrintStatusFilamentWarningHighChamberTempSoft, + PrintStatusFilamentWarningUnknownHighChamberTempSoft, PrintStatusFilamentWarningEnd, PrintStatusWarningEnd,//->end error<- @@ -123,12 +123,12 @@ public: static ::std::string get_print_status_info(PrintDialogStatus status); wxString get_pre_state_msg(PrintDialogStatus status); - bool is_error(PrintDialogStatus status) { return (PrintStatusErrorBegin < status) && (PrintStatusErrorEnd > status); }; - bool is_error_printer(PrintDialogStatus status) { return (PrintStatusPrinterErrorBegin < status) && (PrintStatusPrinterErrorEnd > status); }; - bool is_error_filament(PrintDialogStatus status) { return (PrintStatusFilamentErrorBegin < status) && (PrintStatusFilamentErrorEnd > status); }; - bool is_warning(PrintDialogStatus status) { return (PrintStatusWarningBegin < status) && (PrintStatusWarningEnd > status); }; - bool is_warning_printer(PrintDialogStatus status) { return (PrintStatusPrinterWarningBegin < status) && (PrintStatusPrinterWarningEnd > status); }; - bool is_warning_filament(PrintDialogStatus status) { return (PrintStatusFilamentWarningBegin < status) && (PrintStatusFilamentWarningEnd > status); }; + static bool is_error(PrintDialogStatus status) { return (PrintStatusErrorBegin < status) && (PrintStatusErrorEnd > status); }; + static bool is_error_printer(PrintDialogStatus status) { return (PrintStatusPrinterErrorBegin < status) && (PrintStatusPrinterErrorEnd > status); }; + static bool is_error_filament(PrintDialogStatus status) { return (PrintStatusFilamentErrorBegin < status) && (PrintStatusFilamentErrorEnd > status); }; + static bool is_warning(PrintDialogStatus status) { return (PrintStatusWarningBegin < status) && (PrintStatusWarningEnd > status); }; + static bool is_warning_printer(PrintDialogStatus status) { return (PrintStatusPrinterWarningBegin < status) && (PrintStatusPrinterWarningEnd > status); }; + static bool is_warning_filament(PrintDialogStatus status) { return (PrintStatusFilamentWarningBegin < status) && (PrintStatusFilamentWarningEnd > status); }; }; //class PrePrintMsgBoard : public wxWindow //{ diff --git a/src/slic3r/GUI/SelectMachine.cpp b/src/slic3r/GUI/SelectMachine.cpp index fe6746012..852115631 100644 --- a/src/slic3r/GUI/SelectMachine.cpp +++ b/src/slic3r/GUI/SelectMachine.cpp @@ -1740,10 +1740,10 @@ void SelectMachineDialog::show_status(PrintDialogStatus status, std::vectorvalues[fila_id]; + int chamber_temp = chamber_temperatures->values[item.id]; // check close door - if (obj_->is_support_chamber_edit && chamber_temp >= obj_->chamber_temp_switch_heat) + if (chamber_temp >= obj_->chamber_temp_switch_heat) { - show_status(PrintDialogStatus::PrintStatusFilamentHighChamberTempCloseDoor); - // return; + show_status(PrintDialogStatus::PrintStatusFilamentWarningHighChamberTempCloseDoor); + if (PrePrintChecker::is_error(PrintDialogStatus::PrintStatusFilamentWarningHighChamberTempCloseDoor)) { return; } } // check vitrification @@ -3607,15 +3606,15 @@ void SelectMachineDialog::update_show_status(MachineObject* obj_) if (!known_fila_soften_extruders.empty()) { const wxString& msg = wxString::Format(_L("The filament on %s may soften. Please unload."), _get_ext_loc_str(known_fila_soften_extruders, obj_->m_extder_data.total_extder_count)); - show_status(PrintDialogStatus::PrintStatusFilamentHighChamberTempSoft, std::vector {msg}); - return; + show_status(PrintDialogStatus::PrintStatusFilamentWarningHighChamberTempSoft, std::vector {msg}); + if (PrePrintChecker::is_error(PrintDialogStatus::PrintStatusFilamentWarningHighChamberTempSoft)) { return; } } if (!unknown_fila_soften_extruders.empty()) { const wxString& msg = wxString::Format(_L("The filament on %s is unknown and may soften. Please set filament."), _get_ext_loc_str(unknown_fila_soften_extruders, obj_->m_extder_data.total_extder_count)); - show_status(PrintDialogStatus::PrintStatusUnknownFilamentHighChamberTempSoft, std::vector {msg}); - return; + show_status(PrintDialogStatus::PrintStatusFilamentWarningUnknownHighChamberTempSoft, std::vector {msg}); + if (PrePrintChecker::is_error(PrintDialogStatus::PrintStatusFilamentWarningUnknownHighChamberTempSoft)) { return; } } /** normal check **/