mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-09-16 21:42:43 +00:00
A preset that inherits another preset from the same directory was dropped at load time. load_presets() resolves "inherits" with find_preset2(), which searches m_presets, but the presets it loads are staged in a local vector and merged into m_presets only after the loop - so no preset could be the parent of another preset loaded by the same pass. Only a parent loaded earlier (a system preset, or one in the "base" subdirectory) resolved. The drop was silent in the GUI. Since the CLI resolves --load-settings / --load-filaments by matching the source file against the presets in the loaded bundle, it turns into a hard failure there: a user preset inheriting another user preset exits -5 with "Preset was not found in the loaded bundle". Load in passes instead: a preset whose parent is not in the collection yet is deferred and retried after the pass merges what it loaded, so each pass resolves one more level of the hierarchy. A pass that resolves nothing reports the remaining parents as missing, which also terminates an inheritance cycle. The work list is sorted so the outcome does not depend on directory iteration order.
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: