Resolve the 4 proto-refactored conflicts (Preset.cpp, Print.cpp,
PrintConfig.cpp, Tab.cpp) by keeping the branch's generated-include
versions; auto-merged non-conflict changes from main are preserved.
Reconcile main's new settings into the proto schema. main added 52 new
active init_fff_params settings not present in the proto; ported them all
(type/label/tooltip/default/enum/preset) into print/filament/printer.proto
so the config registers, profiles load, and the GUI does not crash on
missing defs. Added GuiType.plugin_picker to config_metadata.proto and
regenerated config_metadata_pb2.py.
Codegen: run_codegen validate PASSED (712 fields). UI layout (layout.yaml
placement) for the 52 new settings is a follow-up; they are registered and
serialized but not yet placed in GUI tabs.
The proto extraction had dropped several settings that still had struct
members and were used by the engine, and had resurrected two commented-out
ones. This closes those gaps so the generated config matches main.
Fixes startup crash `UnknownOptionException: outer_wall_filament_id`:
- Add proto defs (ported from main) for the 6 struct-backed per-region
filament-id keys the engine reads and handle_legacy resolves into:
outer_wall/inner_wall/internal_solid/sparse_infill/top_surface/
bottom_surface_filament_id. Registered + serialized, but intentionally no
tab UI (the coarse wall_filament/sparse_infill_filament/solid_infill_filament
settings provide the UI). Without a def these threw at profile load.
Restore user settings dropped from the proto (def + preset + UI, from main):
- bridge_line_width, relative_bridge_angle, lightning_overhang_angle,
lightning_prune_angle, lightning_straightening_angle (print.proto)
- initial_layer_fan_speed (filament.proto)
Remove settings the bootstrap resurrected from commented-out code (absent in
main; commented-out struct members): filament_extruder_id (coInts),
spaghetti_detector. The separate custom-gcode filament_extruder_id placeholder
var is untouched.
Add missing printer virtual_preset_keys so vendor machine profiles are not
stripped on load: use_3mf, support_parallel_printheads,
parallel_printheads_count, parallel_printheads_bed_exclude_areas.
Verified: run_codegen validate PASSED (653 fields); libslic3r builds;
OrcaSlicer_profile_validator over all bundled profiles now exits 0 with zero
errors (previously crashed / stripped keys).