The most important thing to make it work is actually notifying the scene that something has changed -- the rest are just refactorings and (hopefully) optimizations.
part of CURA-12543
Also typing. The way it now works is way too slow though, and it doesn't add 'inbetween' the moude-move-positions yet. Also several other things of course.
part of CURA-12543
Should be able to paint pixels now if the tools is active, and the model loaded is with UV-coords (that rules out our current impl. of 3MF at the moment -- use OBJ instead), and you position the model outside of the build-plate so the paint-shadr that is temporarily replacing the 'disabled' one is showing.
Will need a lot of extra features and optimizations still!
part of CURA-12543
Currently replacing the 'disabled' batch until we can get it to switch out on command (when we have the painting stage/tool/... pluging up and running.
part of CURA-12543
CURA-12101
There is a specific unit test that disallows custom settings in printer definitions, so this looks like the proper way of doing it. New settings are disabled by default so should be visible only for the printer that explicitly sets them enabled.
CURA-12101
The disallowed area is the place where the print head goes to cut the filament, so it must really be avoided. On other models this place is outside the build area.
I also reduced the printable size, otherwise the head would sometimes bump into the borders and gets shifted.
CURA-12101
The printer parses the machine_start_gcode to allow selecting the filaments mapping at start time, without it the user has to set the filaments in fixed order. This is probably a security to ensure the proper filament is loaded at start.
Contributes to CURA-12465, this should help with getting more focus in the input we are receiving from the slicing crashes. The old one was a bit outdated.
This would cause the 3MF projects from other vendors, which isn't a 'project' to us in the sense that it isn't a Cura project, to have their models 'arranged', unless the file was opened via 'recent files', in which case the open mode was set to always ask instead.
done as part of CURA-12099
CURA-12346
For some dark reason, importing the ExtruderStack class in the ThreeMFWriter somehow corrupts the loading of the extruders stacks. As it is imported only for typing, do the import only for type-checking.