FIX: all plates stats crash

Change-Id: Iad42b9777e4f3fab4a432b73865d4bd7dd530fd3
This commit is contained in:
liz.li 2023-02-17 15:09:39 +08:00 committed by Lane.Wei
parent 2fc699be6a
commit 0576e3e4fd
2 changed files with 12 additions and 1 deletions

View File

@ -4122,6 +4122,10 @@ void GCodeViewer::render_shells()
void GCodeViewer::render_all_plates_stats(const std::vector<const GCodeProcessorResult*>& gcode_result_list, bool show /*= true*/) const {
if (!show)
return;
for (auto gcode_result : gcode_result_list) {
if (gcode_result->moves.size() == 0)
return;
}
ImGuiWrapper& imgui = *wxGetApp().imgui();
ImGui::PushStyleVar(ImGuiStyleVar_WindowRounding, 0.0f);

View File

@ -7162,7 +7162,14 @@ void GLCanvas3D::_render_imgui_select_plate_toolbar()
if (slice_failed)
all_plates_stats_item->slice_state = IMToolbarItem::SliceState::SLICE_FAILED;
if (all_plates_stats_item->selected && all_plates_stats_item->slice_state == IMToolbarItem::SliceState::SLICED) {
// Changing parameters does not invalid all plates, need extra logic to validate
bool gcode_result_valid = true;
for (auto gcode_result : plate_list.get_nonempty_plates_slice_results()) {
if (gcode_result->moves.size() == 0) {
gcode_result_valid = false;
}
}
if (all_plates_stats_item->selected && all_plates_stats_item->slice_state == IMToolbarItem::SliceState::SLICED && gcode_result_valid) {
m_gcode_viewer.render_all_plates_stats(plate_list.get_nonempty_plates_slice_results());
m_render_preview = false;
}