Files
leocad/common
Leonardo Zide cd6cf53c7b Propagate parts-list rendering failures with lcResult
A null framebuffer readback was treated as empty geometry, so a parts
list could retain a blank entry or silently omit it after rendering failed.
The QImage return type also conflated an empty inventory with an error.

Return lcResult<QImage> and abort on failed thumbnail readback after
framebuffer and renderer cleanup. Report framebuffer creation and image
allocation failures explicitly while preserving successful empty inventory
and unavailable-geometry behavior. HTML export propagates the error text;
the instructions UI clears its stale image and displays a warning parented
to the scene's view.

Validation: full debug build and whitespace checks passed. A temporary
OpenGL fault-injection harness covered first and later readback failures
with both missing-parts policies, framebuffer creation failure, successful
empty results, and restoration of caller context, surface, and framebuffer
bindings. The warning dialog was not exercised interactively.
2026-10-05 14:18:57 -07:00
..
2026-10-05 13:55:22 -07:00
2026-03-10 21:11:40 -07:00
2026-03-10 21:11:40 -07:00
2026-03-10 21:11:40 -07:00
2026-03-10 21:11:40 -07:00
2026-09-19 10:01:40 -07:00
…
2026-03-10 21:11:40 -07:00
2026-04-29 20:59:17 -07:00
2026-04-29 20:59:17 -07:00
2026-09-30 10:03:54 +02:00
2026-09-12 15:54:44 -07:00
2026-09-12 15:54:44 -07:00
2026-03-10 21:11:40 -07:00
2026-03-10 21:11:40 -07:00
2026-09-30 10:03:54 +02:00
2025-11-19 23:10:18 -08:00
2025-11-23 22:52:28 -08:00
2026-03-10 21:11:40 -07:00
2026-03-10 21:11:40 -07:00
2026-03-10 21:11:40 -07:00
2026-04-29 20:59:17 -07:00
2026-05-02 15:08:13 -07:00
2026-05-02 15:08:13 -07:00
…
2026-05-02 15:51:08 -07:00
2026-09-12 15:54:44 -07:00
2026-05-02 15:51:08 -07:00
2026-03-10 21:11:40 -07:00
2026-09-21 22:34:18 -07:00
2026-03-10 21:11:40 -07:00
2026-09-12 15:54:44 -07:00
2026-03-10 21:11:40 -07:00
2026-04-29 20:59:17 -07:00
2026-09-12 15:54:44 -07:00
2026-05-02 16:06:27 -07:00
2026-05-02 16:06:27 -07:00
2026-05-02 16:06:27 -07:00
2026-09-12 15:54:44 -07:00
2026-03-10 21:11:40 -07:00
2025-07-05 12:00:52 -07:00
2026-03-10 21:11:40 -07:00
2025-12-15 11:19:23 -03:00
2025-11-23 22:52:28 -08:00
2025-07-19 12:01:12 -07:00
2025-07-19 12:01:12 -07:00
2026-04-29 20:59:17 -07:00
2026-03-30 22:50:17 -07:00
2026-09-18 18:23:32 -07:00
2026-03-10 21:11:40 -07:00
2026-03-10 21:11:40 -07:00
2026-03-10 19:55:49 -07:00
2026-03-10 21:11:40 -07:00
2026-09-19 10:01:40 -07:00