diff --git a/src/slic3r/GUI/CaliHistoryDialog.cpp b/src/slic3r/GUI/CaliHistoryDialog.cpp index 03c0dd22d4..d5c726c289 100644 --- a/src/slic3r/GUI/CaliHistoryDialog.cpp +++ b/src/slic3r/GUI/CaliHistoryDialog.cpp @@ -23,9 +23,9 @@ static wxString get_preset_name_by_filament_id(std::string filament_id) for (auto it = preset_bundle->filaments.begin(); it != preset_bundle->filaments.end(); it++) { if (filament_id.compare(it->filament_id) == 0) { if (!it->alias.empty()) - preset_name = it->alias; + preset_name = from_u8(it->alias); else - preset_name = it->name; + preset_name = from_u8(it->name); } } return preset_name; @@ -220,7 +220,7 @@ void HistoryWindow::sync_history_data() { int i = 1; for (auto& result : m_calib_results_history) { - auto name_value = new wxStaticText(m_history_data_panel, wxID_ANY, result.name); + auto name_value = new wxStaticText(m_history_data_panel, wxID_ANY, from_u8(result.name)); wxString preset_name = get_preset_name_by_filament_id(result.filament_id); auto preset_name_value = new wxStaticText(m_history_data_panel, wxID_ANY, preset_name); diff --git a/src/slic3r/GUI/CalibrationWizard.cpp b/src/slic3r/GUI/CalibrationWizard.cpp index 8a17f16b47..d5e42d1124 100644 --- a/src/slic3r/GUI/CalibrationWizard.cpp +++ b/src/slic3r/GUI/CalibrationWizard.cpp @@ -16,6 +16,20 @@ wxDEFINE_EVENT(EVT_CALIBRATION_JOB_FINISHED, wxCommandEvent); static const wxString NA_STR = _L("N/A"); +bool check_preset_name_valid(const wxString& name) { + wxString error_message; + if (name.IsEmpty()) { + error_message = _L("Please enter the name you want to save to printer."); + } else if (name.Length() > 40) { + error_message = _L("The name cannot exceed 40 characters."); + } + if (!error_message.IsEmpty()) { + MessageDialog error_msg_dlg(nullptr, error_message, wxEmptyString, wxICON_WARNING | wxOK); + error_msg_dlg.ShowModal(); + return false; + } + return true; +} CalibrationWizard::CalibrationWizard(wxWindow* parent, CalibMode mode, wxWindowID id, const wxPoint& pos, const wxSize& size, long style) : wxPanel(parent, id, pos, size, style) @@ -889,6 +903,7 @@ void FlowRateWizard::on_cali_save() { auto coarse_save_page = static_cast(m_curr_step->page); if (!coarse_save_page->get_result(&new_flow_ratio, &new_preset_name)) { + BOOST_LOG_TRIVIAL(info) << "flow_rate_cali: get coarse result failed"; return; } } @@ -896,12 +911,18 @@ void FlowRateWizard::on_cali_save() { auto fine_save_page = static_cast(m_curr_step->page); if (!fine_save_page->get_result(&new_flow_ratio, &new_preset_name)) { + BOOST_LOG_TRIVIAL(info) << "flow_rate_cali: get fine result failed"; return; } } else { + BOOST_LOG_TRIVIAL(info) << "flow_rate_cali: get result failed, not get result"; return; } + + if (!check_preset_name_valid(new_preset_name)) + return; + std::string old_preset_name; CalibrationPresetPage* preset_page = (static_cast(preset_step->page)); std::map selected_filaments = preset_page->get_selected_filaments(); @@ -912,7 +933,7 @@ void FlowRateWizard::on_cali_save() key_value_map.insert(std::make_pair("filament_flow_ratio", new ConfigOptionFloats{ new_flow_ratio })); std::string message; - if (!save_preset(old_preset_name, new_preset_name.ToStdString(), key_value_map, message)) { + if (!save_preset(old_preset_name, into_u8(new_preset_name), key_value_map, message)) { MessageDialog error_msg_dlg(nullptr, message, wxEmptyString, wxICON_WARNING | wxOK); error_msg_dlg.ShowModal(); return; @@ -1177,9 +1198,13 @@ void MaxVolumetricSpeedWizard::on_cali_save() double value = 0; CalibrationMaxVolumetricSpeedSavePage *save_page = (static_cast(save_step->page)); if (!save_page->get_save_result(value, new_preset_name)) { + BOOST_LOG_TRIVIAL(info) << "max_volumetric_speed_cali: get result failed"; return; } + if (!check_preset_name_valid(new_preset_name)) + return; + std::map key_value_map; key_value_map.insert(std::make_pair("filament_max_volumetric_speed", new ConfigOptionFloats{ value })); diff --git a/src/slic3r/GUI/CalibrationWizardSavePage.cpp b/src/slic3r/GUI/CalibrationWizardSavePage.cpp index ba322c2c94..ec0f2af837 100644 --- a/src/slic3r/GUI/CalibrationWizardSavePage.cpp +++ b/src/slic3r/GUI/CalibrationWizardSavePage.cpp @@ -12,9 +12,9 @@ static wxString get_default_name(wxString filament_name, CalibMode mode){ for (auto it = preset_bundle->filaments.begin(); it != preset_bundle->filaments.end(); it++) { if (filament_name.compare(it->name) == 0) { if (!it->alias.empty()) - filament_name = it->alias; + filament_name = from_u8(it->alias); else - filament_name = it->name; + filament_name = from_u8(it->name); } } @@ -347,7 +347,7 @@ void CaliPASaveAutoPanel::save_to_result_from_widgets(wxWindow* window, bool* ou *out_msg = _L("The name cannot exceed 40 characters."); *out_is_valid = false; } - m_calib_results[tray_id].name = name.ToStdString(); + m_calib_results[tray_id].name = into_u8(name); } auto childern = window->GetChildren(); @@ -503,7 +503,7 @@ bool CaliPASaveManualPanel::get_result(PACalibResult& out_result) { } out_result.k_value = k; - out_result.name = name.ToStdString(); + out_result.name = into_u8(name); if (m_obj) { assert(m_obj->selected_cali_preset.size() <= 1); if (!m_obj->selected_cali_preset.empty()) { @@ -679,7 +679,7 @@ void CaliSavePresetValuePanel::get_value(double& value) void CaliSavePresetValuePanel::get_save_name(std::string& name) { - name = m_input_name->GetTextCtrl()->GetValue().ToStdString(); + name = into_u8(m_input_name->GetTextCtrl()->GetValue()); } void CaliSavePresetValuePanel::set_save_name(const std::string& name) diff --git a/src/slic3r/Utils/CalibUtils.cpp b/src/slic3r/Utils/CalibUtils.cpp index f5d75cb88c..632c919862 100644 --- a/src/slic3r/Utils/CalibUtils.cpp +++ b/src/slic3r/Utils/CalibUtils.cpp @@ -316,6 +316,9 @@ void CalibUtils::calib_flowrate_X1C(const X1CCalibInfos& calib_infos, std::strin if (calib_infos.calib_datas.size() > 0) obj_->command_start_flow_ratio_calibration(calib_infos); + else { + BOOST_LOG_TRIVIAL(info) << "flow_rate_cali: auto | send info | cali_datas is empty."; + } } void CalibUtils::emit_get_flow_ratio_calib_results(float nozzle_diameter)