FIX: move the message to dialog
jira: [STUDIO-9580] Change-Id: I95f6d8ee56767b682956ce84cc74c096984afbef
This commit is contained in:
parent
52cfb30119
commit
3697ff05a4
|
@ -72,25 +72,7 @@ void SelectMachineDialog::stripWhiteSpace(std::string& str)
|
|||
}
|
||||
}
|
||||
|
||||
wxString SelectMachineDialog::format_text(wxString &m_msg)
|
||||
{
|
||||
if (wxGetApp().app_config->get("language") != "zh_CN") {return m_msg; }
|
||||
|
||||
wxString out_txt = m_msg;
|
||||
wxString count_txt = "";
|
||||
int new_line_pos = 0;
|
||||
|
||||
for (int i = 0; i < m_msg.length(); i++) {
|
||||
auto text_size = m_statictext_ams_msg->GetTextExtent(count_txt);
|
||||
if (text_size.x < (FromDIP(600))) {
|
||||
count_txt += m_msg[i];
|
||||
} else {
|
||||
out_txt.insert(i - 1, '\n');
|
||||
count_txt = "";
|
||||
}
|
||||
}
|
||||
return out_txt;
|
||||
}
|
||||
std::vector<wxString> SelectMachineDialog::MACHINE_BED_TYPE_STRING;
|
||||
std::vector<string> SelectMachineDialog::MachineBedTypeString;
|
||||
void SelectMachineDialog::init_machine_bed_types()
|
||||
|
@ -1587,8 +1569,6 @@ void SelectMachineDialog::update_ams_status_msg(wxString msg, bool is_warning)
|
|||
Fit();
|
||||
}
|
||||
} else {
|
||||
msg = format_text(msg);
|
||||
|
||||
auto str_new = msg.utf8_string();
|
||||
stripWhiteSpace(str_new);
|
||||
|
||||
|
@ -1620,8 +1600,6 @@ void SelectMachineDialog::update_priner_status_msg(wxString msg, bool is_warning
|
|||
Fit();
|
||||
}
|
||||
} else {
|
||||
msg = format_text(msg);
|
||||
|
||||
auto str_new = msg.utf8_string();
|
||||
stripWhiteSpace(str_new);
|
||||
|
||||
|
@ -1779,7 +1757,16 @@ void SelectMachineDialog::show_status(PrintDialogStatus status, std::vector<wxSt
|
|||
update_print_status_msg(msg_text, true, false);
|
||||
Enable_Send_Button(false);
|
||||
Enable_Refresh_Button(true);
|
||||
} else if (status == PrintDialogStatus::PrintStatusAmsMappingU0Invalid) {
|
||||
} else if (status == PrintStatusNozzleDiameterMismatch && !params.empty()) {
|
||||
update_print_status_msg(params[0], true, true);
|
||||
Enable_Send_Button(false);
|
||||
Enable_Refresh_Button(true);
|
||||
} else if (status == PrintStatusNozzleTypeMismatch && !params.empty()) {
|
||||
update_print_status_msg(params[0], true, true);
|
||||
Enable_Send_Button(false);
|
||||
Enable_Refresh_Button(true);
|
||||
}
|
||||
else if (status == PrintDialogStatus::PrintStatusAmsMappingU0Invalid) {
|
||||
wxString msg_text;
|
||||
if (params.size() > 1)
|
||||
msg_text = wxString::Format(_L("Filament %s does not match the filament in AMS slot %s. Please update the printer firmware to support AMS slot assignment."), params[0], params[1]);
|
||||
|
@ -2220,52 +2207,6 @@ void SelectMachineDialog::on_ok_btn(wxCommandEvent &event)
|
|||
confirm_text.push_back(ConfirmBeforeSendInfo(_L("There are some unknown filaments in the AMS mappings. Please check whether they are the required filaments. If they are okay, press \"Confirm\" to start printing.")));
|
||||
}
|
||||
|
||||
if (m_print_type == PrintFromType::FROM_NORMAL)
|
||||
{
|
||||
/*check nozzle diameter*/
|
||||
float nozzle_diameter = 0;
|
||||
if (!is_same_nozzle_diameters(nozzle_diameter))
|
||||
{
|
||||
has_slice_warnings = true;
|
||||
is_printing_block = true;
|
||||
|
||||
const wxString& tips = _L("Tips: If you changed your nozzle of your printer lately, Please go to 'Device -> Printer parts' to change your nozzle setting.");
|
||||
if (obj_->m_extder_data.total_extder_count == 2)
|
||||
{
|
||||
const wxString& nozzle_config = wxString::Format(_L("The nozzle diameter (%.1fmm) in slice file is unconsistent with"
|
||||
"the left nozzle diameter (%.1fmm) or right nozzle diameter (%.1fmm)"
|
||||
"set on your print."), nozzle_diameter,
|
||||
obj_->m_extder_data.extders[0].current_nozzle_diameter,
|
||||
obj_->m_extder_data.extders[1].current_nozzle_diameter);
|
||||
confirm_text.push_back(ConfirmBeforeSendInfo(nozzle_config + "\n\n" + tips, ConfirmBeforeSendInfo::InfoLevel::Warning));
|
||||
}
|
||||
else
|
||||
{
|
||||
const wxString& nozzle_config = wxString::Format(_L("The nozzle diameter (%.1fmm) in slice file is unconsistent with the nozzle diameter (%.1fmm) set on your print."
|
||||
"You can't send to print until they are consistent."), nozzle_diameter,
|
||||
obj_->m_extder_data.extders[0].current_nozzle_diameter);
|
||||
confirm_text.push_back(ConfirmBeforeSendInfo(nozzle_config + "\n\n" + tips, ConfirmBeforeSendInfo::InfoLevel::Warning));
|
||||
}
|
||||
}
|
||||
|
||||
/*check nozzle type*/
|
||||
DeviceManager* dev = Slic3r::GUI::wxGetApp().getDeviceManager();
|
||||
MachineObject* obj = dev ? dev->get_selected_machine() : nullptr;
|
||||
const std::vector<Extder>& extders = obj ? obj->m_extder_data.extders : std::vector<Extder>();
|
||||
for (const auto& extder : extders)
|
||||
{
|
||||
std::string filament_type;
|
||||
if (!is_same_nozzle_type(extder, filament_type))
|
||||
{
|
||||
has_slice_warnings = true;
|
||||
is_printing_block = true;
|
||||
wxString nozzle_in_preset = wxString::Format(_L("Printing high temperature material(%s material) with %s may cause nozzle damage"),
|
||||
filament_type, format_steel_name(obj_->m_extder_data.extders[0].current_nozzle_type));
|
||||
confirm_text.push_back(ConfirmBeforeSendInfo(nozzle_in_preset, ConfirmBeforeSendInfo::InfoLevel::Warning));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (has_slice_warnings)
|
||||
{
|
||||
ConfirmBeforeSendDialog confirm_dlg(this, wxID_ANY, _L("Warning"));
|
||||
|
@ -3343,6 +3284,47 @@ void SelectMachineDialog::update_show_status()
|
|||
}
|
||||
}
|
||||
|
||||
// check nozzle type and diameter
|
||||
if (m_print_type == PrintFromType::FROM_NORMAL)
|
||||
{
|
||||
float nozzle_diameter = 0;
|
||||
if (!is_same_nozzle_diameters(nozzle_diameter))
|
||||
{
|
||||
std::vector<wxString> error_msg;
|
||||
const wxString& tips = _L("Tips: If you changed your nozzle of your printer lately, Please go to 'Device -> Printer parts' to change your nozzle setting.");
|
||||
if (obj_->m_extder_data.total_extder_count == 2)
|
||||
{
|
||||
const wxString& nozzle_config = wxString::Format(_L("The nozzle diameter (%.1fmm) in slice file is unconsistent with"
|
||||
"the left nozzle diameter (%.1fmm) or right nozzle diameter (%.1fmm)"
|
||||
"set on your print."), nozzle_diameter,
|
||||
obj_->m_extder_data.extders[0].current_nozzle_diameter,
|
||||
obj_->m_extder_data.extders[1].current_nozzle_diameter);
|
||||
error_msg.emplace_back(nozzle_config + "\n\n" + tips);
|
||||
}
|
||||
else
|
||||
{
|
||||
const wxString& nozzle_config = wxString::Format(_L("The nozzle diameter (%.1fmm) in slice file is unconsistent with the nozzle diameter (%.1fmm) set on your print."
|
||||
"You can't send to print until they are consistent."), nozzle_diameter,
|
||||
obj_->m_extder_data.extders[0].current_nozzle_diameter);
|
||||
error_msg.emplace_back(nozzle_config + "\n\n" + tips);
|
||||
}
|
||||
|
||||
return show_status(PrintDialogStatus::PrintStatusNozzleDiameterMismatch, error_msg);
|
||||
}
|
||||
|
||||
for (const auto& extder : obj_->m_extder_data.extders)
|
||||
{
|
||||
std::string filament_type;
|
||||
if (!is_same_nozzle_type(extder, filament_type))
|
||||
{
|
||||
std::vector<wxString> error_msg;
|
||||
error_msg.emplace_back(wxString::Format(_L("Printing high temperature material(%s material) with %s may cause nozzle damage"),
|
||||
filament_type, format_steel_name(extder.current_nozzle_type)));
|
||||
return show_status(PrintDialogStatus::PrintStatusNozzleTypeMismatch, error_msg);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!m_mapping_popup.m_supporting_mix_print && nozzle_nums == 1)
|
||||
{
|
||||
bool useAms = false;
|
||||
|
|
|
@ -80,6 +80,8 @@ enum PrintDialogStatus {
|
|||
PrintStatusAmsMappingMixInvalid,
|
||||
PrintStatusNozzleMatchInvalid,
|
||||
PrintStatusNozzleDataInvalid,
|
||||
PrintStatusNozzleDiameterMismatch,
|
||||
PrintStatusNozzleTypeMismatch,
|
||||
PrintStatusAmsMappingValid,
|
||||
PrintStatusAmsMappingByOrder,
|
||||
PrintStatusRefreshingMachineList,
|
||||
|
@ -488,7 +490,6 @@ public:
|
|||
PrintFromType get_print_type() {return m_print_type;};
|
||||
wxString format_bed_name(std::string plate_name);
|
||||
wxString format_steel_name(NozzleType type);
|
||||
wxString format_text(wxString &m_msg);
|
||||
PrintDialogStatus get_status() { return m_print_status; }
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue