FIX: fix the tips text displayed of K factor limitation

jira: STUDIO-4941、STUDIO-4948、STUDIO-4950、STUDIO-4944

Change-Id: I2135547201fb8d6a5b9b8e467a5699fb22934a46
This commit is contained in:
liz.li 2023-10-30 10:49:40 +08:00 committed by Lane.Wei
parent a006286465
commit 96ca63c220
4 changed files with 24 additions and 17 deletions

View File

@ -561,8 +561,8 @@ void AMSMaterialsSetting::on_select_ok(wxCommandEvent &event)
wxString n_text = m_input_n_val->GetTextCtrl()->GetValue(); wxString n_text = m_input_n_val->GetTextCtrl()->GetValue();
if ((obj->get_printer_series() != PrinterSeries::SERIES_X1) && !ExtrusionCalibration::check_k_validation(k_text)) { if ((obj->get_printer_series() != PrinterSeries::SERIES_X1) && !ExtrusionCalibration::check_k_validation(k_text)) {
wxString k_tips = _L("Please input a valid value (K in 0~0.5)"); wxString k_tips = _L("Please input a valid value (K in 0~0.3)");
wxString kn_tips = _L("Please input a valid value (K in 0~0.5, N in 0.6~2.0)"); wxString kn_tips = _L("Please input a valid value (K in 0~0.3, N in 0.6~2.0)");
MessageDialog msg_dlg(nullptr, k_tips, wxEmptyString, wxICON_WARNING | wxOK); MessageDialog msg_dlg(nullptr, k_tips, wxEmptyString, wxICON_WARNING | wxOK);
msg_dlg.ShowModal(); msg_dlg.ShowModal();
return; return;

View File

@ -15,6 +15,7 @@ namespace GUI {
#define HISTORY_WINDOW_SIZE wxSize(FromDIP(700), FromDIP(600)) #define HISTORY_WINDOW_SIZE wxSize(FromDIP(700), FromDIP(600))
#define EDIT_HISTORY_DIALOG_INPUT_SIZE wxSize(FromDIP(160), FromDIP(24)) #define EDIT_HISTORY_DIALOG_INPUT_SIZE wxSize(FromDIP(160), FromDIP(24))
#define HISTORY_WINDOW_ITEMS_COUNT 5 #define HISTORY_WINDOW_ITEMS_COUNT 5
static const wxString k_tips = "Please input a valid value (K in 0~0.3)";
static wxString get_preset_name_by_filament_id(std::string filament_id) static wxString get_preset_name_by_filament_id(std::string filament_id)
{ {
@ -376,22 +377,26 @@ EditCalibrationHistoryDialog::EditCalibrationHistoryDialog(wxWindow* parent, con
k_value->GetTextCtrl()->Bind(wxEVT_TEXT_ENTER, [this, k_value](auto& e) { k_value->GetTextCtrl()->Bind(wxEVT_TEXT_ENTER, [this, k_value](auto& e) {
float k = 0.0f; float k = 0.0f;
if (!CalibUtils::validate_input_k_value(k_value->GetTextCtrl()->GetValue(), &k)) { if (!CalibUtils::validate_input_k_value(k_value->GetTextCtrl()->GetValue(), &k)) {
MessageDialog msg_dlg(nullptr, _L("Please input a valid value (K in 0~0.5)"), wxEmptyString, wxICON_WARNING | wxOK); MessageDialog msg_dlg(nullptr, _L(k_tips), wxEmptyString, wxICON_WARNING | wxOK);
msg_dlg.ShowModal(); msg_dlg.ShowModal();
} }
wxString k_str = wxString::Format("%.3f", k); else {
k_value->GetTextCtrl()->SetValue(k_str); wxString k_str = wxString::Format("%.3f", k);
m_new_result.k_value = k; k_value->GetTextCtrl()->SetValue(k_str);
m_new_result.k_value = k;
}
}); });
k_value->GetTextCtrl()->Bind(wxEVT_KILL_FOCUS, [this, k_value](auto& e) { k_value->GetTextCtrl()->Bind(wxEVT_KILL_FOCUS, [this, k_value](auto& e) {
float k = 0.0f; float k = 0.0f;
if (!CalibUtils::validate_input_k_value(k_value->GetTextCtrl()->GetValue(), &k)) { if (!CalibUtils::validate_input_k_value(k_value->GetTextCtrl()->GetValue(), &k)) {
MessageDialog msg_dlg(nullptr, _L("Please input a valid value (K in 0~0.5)"), wxEmptyString, wxICON_WARNING | wxOK); MessageDialog msg_dlg(nullptr, _L(k_tips), wxEmptyString, wxICON_WARNING | wxOK);
msg_dlg.ShowModal(); msg_dlg.ShowModal();
} }
wxString k_str = wxString::Format("%.3f", k); else {
k_value->GetTextCtrl()->SetValue(k_str); wxString k_str = wxString::Format("%.3f", k);
m_new_result.k_value = k; k_value->GetTextCtrl()->SetValue(k_str);
m_new_result.k_value = k;
}
e.Skip(); e.Skip();
}); });
flex_sizer->Add(k_title); flex_sizer->Add(k_title);

View File

@ -8,6 +8,7 @@ namespace Slic3r { namespace GUI {
#define CALIBRATION_SAVE_INPUT_SIZE wxSize(FromDIP(240), FromDIP(24)) #define CALIBRATION_SAVE_INPUT_SIZE wxSize(FromDIP(240), FromDIP(24))
#define FLOW_RATE_MAX_VALUE 1.15 #define FLOW_RATE_MAX_VALUE 1.15
static const wxString k_tips = "Please input a valid value (K in 0~0.3)";
static wxString get_default_name(wxString filament_name, CalibMode mode){ static wxString get_default_name(wxString filament_name, CalibMode mode){
PresetBundle* preset_bundle = wxGetApp().preset_bundle; PresetBundle* preset_bundle = wxGetApp().preset_bundle;
@ -363,10 +364,11 @@ void CaliPASaveAutoPanel::save_to_result_from_widgets(wxWindow* window, bool* ou
if (input->get_type() == GridTextInputType::K) { if (input->get_type() == GridTextInputType::K) {
float k = 0.0f; float k = 0.0f;
if (!CalibUtils::validate_input_k_value(input->GetTextCtrl()->GetValue(), &k)) { if (!CalibUtils::validate_input_k_value(input->GetTextCtrl()->GetValue(), &k)) {
*out_msg = _L("Please input a valid value (K in 0~0.5)"); *out_msg = _L("Please input a valid value (K in 0~0.3)");
*out_is_valid = false; *out_is_valid = false;
} }
m_calib_results[tray_id].k_value = k; else
m_calib_results[tray_id].k_value = k;
} }
else if (input->get_type() == GridTextInputType::N) { else if (input->get_type() == GridTextInputType::N) {
} }
@ -546,7 +548,7 @@ bool CaliPASaveManualPanel::get_result(PACalibResult& out_result) {
// Check if the value is valid // Check if the value is valid
float k; float k;
if (!CalibUtils::validate_input_k_value(m_k_val->GetTextCtrl()->GetValue(), &k)) { if (!CalibUtils::validate_input_k_value(m_k_val->GetTextCtrl()->GetValue(), &k)) {
MessageDialog msg_dlg(nullptr, _L("Please input a valid value (K in 0~0.5)"), wxEmptyString, wxICON_WARNING | wxOK); MessageDialog msg_dlg(nullptr, _L(k_tips), wxEmptyString, wxICON_WARNING | wxOK);
msg_dlg.ShowModal(); msg_dlg.ShowModal();
return false; return false;
} }
@ -698,7 +700,7 @@ void CaliPASaveP1PPanel::set_pa_cali_method(ManualPaCaliMethod method)
bool CaliPASaveP1PPanel::get_result(float* out_k, float* out_n){ bool CaliPASaveP1PPanel::get_result(float* out_k, float* out_n){
// Check if the value is valid // Check if the value is valid
if (!CalibUtils::validate_input_k_value(m_k_val->GetTextCtrl()->GetValue(), out_k)) { if (!CalibUtils::validate_input_k_value(m_k_val->GetTextCtrl()->GetValue(), out_k)) {
MessageDialog msg_dlg(nullptr, _L("Please input a valid value (K in 0~0.5)"), wxEmptyString, wxICON_WARNING | wxOK); MessageDialog msg_dlg(nullptr, _L(k_tips), wxEmptyString, wxICON_WARNING | wxOK);
msg_dlg.ShowModal(); msg_dlg.ShowModal();
return false; return false;
} }

View File

@ -508,7 +508,7 @@ bool ExtrusionCalibration::check_k_validation(wxString k_text)
; ;
} }
if (k < 0 || k > 0.5) if (k < 0 || k > 0.3)
return false; return false;
return true; return true;
} }
@ -544,8 +544,8 @@ void ExtrusionCalibration::on_click_save(wxCommandEvent &event)
wxString k_text = m_k_val->GetTextCtrl()->GetValue(); wxString k_text = m_k_val->GetTextCtrl()->GetValue();
wxString n_text = m_n_val->GetTextCtrl()->GetValue(); wxString n_text = m_n_val->GetTextCtrl()->GetValue();
if (!ExtrusionCalibration::check_k_validation(k_text)) { if (!ExtrusionCalibration::check_k_validation(k_text)) {
wxString k_tips = _L("Please input a valid value (K in 0~0.5)"); wxString k_tips = _L("Please input a valid value (K in 0~0.3)");
wxString kn_tips = _L("Please input a valid value (K in 0~0.5, N in 0.6~2.0)"); wxString kn_tips = _L("Please input a valid value (K in 0~0.3, N in 0.6~2.0)");
MessageDialog msg_dlg(nullptr, k_tips, wxEmptyString, wxICON_WARNING | wxOK); MessageDialog msg_dlg(nullptr, k_tips, wxEmptyString, wxICON_WARNING | wxOK);
msg_dlg.ShowModal(); msg_dlg.ShowModal();
return; return;