The extruder manager was too late to catch the initial global stack switch and machine switch. Now it just always reloads the extruders at the beginning.
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.
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.
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.