ENH: valid print all when selecting blank plate

and give a tips when print blank plate

Change-Id: Ic243dcee87d4a5a09de91c5806f1a94735f1052b
Signed-off-by: Stone Li <stone.li@bambulab.com>
This commit is contained in:
Stone Li 2022-12-13 18:03:56 +08:00 committed by Lane.Wei
parent 026bd3d872
commit 52847b8bb4
3 changed files with 64 additions and 49 deletions

View file

@ -4011,7 +4011,9 @@ bool PartPlateList::is_all_slice_results_ready_for_print() const
{ {
for (unsigned int i = 0; i < (unsigned int)m_plate_list.size(); ++i) for (unsigned int i = 0; i < (unsigned int)m_plate_list.size(); ++i)
{ {
if (!m_plate_list[i]->is_slice_result_ready_for_print()) if (!m_plate_list[i]->is_slice_result_ready_for_print()
&& m_plate_list[i]->has_printable_instances()
)
return false; return false;
} }
return true; return true;

View file

@ -1864,6 +1864,11 @@ void SelectMachineDialog::show_status(PrintDialogStatus status, std::vector<wxSt
update_print_status_msg(msg_text, true, true); update_print_status_msg(msg_text, true, true);
Enable_Send_Button(false); Enable_Send_Button(false);
Enable_Refresh_Button(true); Enable_Refresh_Button(true);
} else if (status == PrintDialogStatus::PrintStatusBlankPlate) {
wxString msg_text = _L("Cannot send the print job for empty plate");
update_print_status_msg(msg_text, true, true);
Enable_Send_Button(false);
Enable_Refresh_Button(true);
} }
} }
@ -2554,6 +2559,13 @@ void SelectMachineDialog::update_show_status()
if (!dev) return; if (!dev) return;
dev->check_pushing(); dev->check_pushing();
PartPlate* plate = m_plater->get_partplate_list().get_curr_plate();
// blank plate has no valid gcode file
if (plate&& !plate->is_valid_gcode_file()) {
show_status(PrintDialogStatus::PrintStatusBlankPlate);
return;
}
MachineObject* obj_ = dev->get_my_machine(m_printer_last_select); MachineObject* obj_ = dev->get_my_machine(m_printer_last_select);
if (!obj_) { if (!obj_) {
update_ams_check(nullptr); update_ams_check(nullptr);

View file

@ -259,7 +259,8 @@ enum PrintDialogStatus {
PrintStatusNotOnTheSameLAN, PrintStatusNotOnTheSameLAN,
PrintStatusNeedForceUpgrading, PrintStatusNeedForceUpgrading,
PrintStatusNeedConsistencyUpgrading, PrintStatusNeedConsistencyUpgrading,
PrintStatusNotSupportedSendToSDCard PrintStatusNotSupportedSendToSDCard,
PrintStatusBlankPlate
}; };
std::string get_print_status_info(PrintDialogStatus status); std::string get_print_status_info(PrintDialogStatus status);