mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-10-11 09:51:06 +00:00
A coEnum config value has two representations: the typed ConfigOptionEnum<T> a config cloned from the static classes carries, and the ConfigOptionEnumGeneric that a config assembled from the option definitions creates - which is what a preset, a project's own settings and the CLI all hold. imex_cfg_enum() accepted only the first, so every IDEX/IQEX reader took the option default instead: a printer saved as rear-left came back front-left in the settings, the bed zones and the carriage markers, while the preset on disk still held rear-left. Read the generic form too, keyed on the value map it carries, since only T's own map yields a T. The last reader that matched on the coEnum tag alone and cast across the two hierarchies now goes through the helper with everything else. Declaring the three keys the static classes were missing is what lets a change to imex_tool_layout invalidate the slice it moves, which it never did before. The two that are only ever drawn stay out of that: a colour scheme and the advisory margin bands do not reach a slice, so changing one must not discard it. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
OrcaSlicer tests
Building, running and writing tests is documented on the wiki, under How to Test.
Two files here rather than there, because coding agents only read what is in the repository: