CURA-5682
A max recursion error will occur when the user creates a material on the
material management page. Too many signals get directly triggered and
some of them head back again and causes a max recursion error.
We know in these places that there must be a global stack at this point. So to hide the type error we'll cast it here.
Of course, the danger in this is that someone might call this function that doesn't know about this requirement and calls it when there is potentially no global stack yet. Hopefully they'll discover this crash when that happens then.
CURA-5694
For a machine, if it has extruder-specific qualities, when we look up
extruder qualities, we should NOT fall back to use the global qualities.
CURA-5694
For a machine, if it has extruder-specific qualities, when we look up
extruder qualities, we should NOT fall back to use the global qualities.
The type hinting indicated that the property was a dict, but it could also be None.
In cases where it was None, it would cause an exception, which was also fixed (since
unpacking None will break)
CURA-5694
- Add convenience functions into GlobalStack
- Use "has_variants" and "has_materials" instead of
"has_variant_materials"
- Remove "has_variant_materials"
- For extruder qualities, skip global qualities if the machine has
variants or materials
ContainerRegistry.
That will be very helpful for creating unit tests. Also this is not
needed because the next stack is always set in the machine or extruder
manager when switching printers.
Contributes to CURA-5628.
them to the container registry, that is done in CuraApplication.
That allow us to have access to the empty containers and so we can unit
test easily without mocking up stuff.
Contributes to CURA-5628.