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)
{
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 true;

View file

@ -1864,6 +1864,11 @@ void SelectMachineDialog::show_status(PrintDialogStatus status, std::vector<wxSt
update_print_status_msg(msg_text, true, true);
Enable_Send_Button(false);
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;
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);
if (!obj_) {
update_ams_check(nullptr);

View file

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