You can activate the roof and bottom separately now. If you want, of course. The original interface setting sets both of them unless overwritten.
Contributes to issue CURA-3491.
Note that currently the support_interface_extruder_nr is still used by the engine for some things and therefore the build volume calculations may not be 100% correct. I'll fix that up soon.
Contributes to issue CURA-3491.
They may temporarily be empty strings while the user is typing, but that currently makes the setting red. However, if we crash during the build plate updating, the front-end gets in some half-updated state in which settings get reset to their previous state every time the user changes anything. So don't crash here.
Contributes to issue CURA-3157.
I do not want to add the rebuild() call to the update function itself since there may be other changes to the build volume before we should rebuild (such as raft).
Contributes to issue CURA-2625.
Requires some multi-levelled trickery to get the event listeners working. This also assumes that the per-object stack decorator is not deleted at any point unless the mesh is deleted (which is currently a correct assumption). If that ever changes though, the harm is just that the update function is still listening on the deleted decorator's stack.
Contributes to issue CURA-2625.
Because the new object may use an extruder that wasn't used so far, and if you remove an object it may remove the need for a certain extruder.
Contributes to issue CURA-2625.
It's a bit counter-intuitive, so let me explain. The total build volume is defined as the rectangle around the union of the areas that all extruders can reach. The nozzle offset for the left extruder though is 0,0, so what should the border on the right side be? It should be 18 since there is a nozzle to the right of the left nozzle which has a relative x-offset of 18mm. Therefore we need to compute the relative offsets with each of the other nozzles and create sort of a bounding box around it, and the distance to the edge of that bounding box is the unreachable border on each of the sides.
Contributes to issue CURA-2625.
These disallowed areas are only at nozzle-height, not at head-height. They therefore won't move along with the nozzle offset.
Contributes to issue CURA-2625.