The result of the function was None, but I don't need None to be called whenever extruders changed. I need the function itself to be called.
Contributes to issues CURA-1278 and CURA-351.
This is a new data type. It behaves and saves just like an integer, but it's actually just an index of the extruder to use.
Contributes to issues CURA-1278 and CURA-351.
Hasn't been tested much because there is no display for this in the front-end yet. It needs a setting data type to go with in order to display it. This model is for the drop-down boxes to select an extruder to print, for instance, the support with.
Contributes to issues CURA-1278 and CURA-351.
This is more robust to cyclic dependencies, and also the intended way of importing these classes in Python in general.
Contributes to issues CURA-1278 and CURA-351.
This way we don't need to load it in CuraApplication but we can just load it whenever it is first needed. ExtruderManager should be robust against initialising it at any point in Cura's runtime.
Contributes to issues CURA-1278 and CURA-351.
This will consequently also load all extruder stacks of the current machine whenever the current machine changes.
Contributes to issues CURA-1278 and CURA-351.
When the global extruder stack switches, we need to re-connect the reloading of extruders to the new containersChanged signal of the new global container stack. This now also bootstraps the listening for the first time, when the global container stack changes from None to the first stack.
Contributes to issues CURA-1278 and CURA-351.
This implementation can load an extruder from a definition container, but doesn't expose anything (yet). It is intended to function in much the same way as a definition model, so it must expose its relevant properties to QML.
Contributes to issues CURA-1278 and CURA-351.
It is still a model according to the MVC paradigm but not according to Qt. To be consistent with the rest, don't call it a model any more.
Contributes to issues CURA-1278 and CURA-351.
This implementation is currently not used, and also still leaves its container stacks empty. But still...
Contributes to issues CURA-1278 and CURA-351.
These characters are just for visualisation in the code. They should never be used during the normal operation of the program, nor should they be saved to the file. So just replace them immediately.
Contributes to issue CURA-1278.
The definition is derived with inheritance, just like the printers. Therefore I decided to call this 'ExtruderStack' in line with how the resource type for the printer is named.
Contributes to issue CURA-1278.