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.
Contributes to CURA-1278
* settings_rework: (224 commits)
Improve slice trigger documentation
Import Cura in materials preferences page so we can use the active definition id
Add layer height to high quality profile so we have something that changes
Update example XML material to use the right product names
Filter available materials by the machine definition
Show the add machine dialog when we do not have an active machine
Create machine-specific material containers for machine specific overrides in XML material files
When creating a new container stack, add empty containers for things where we cannot find containers
Add preferred variant, material and quality to UM2+ definition
Account for global container stack being None in the backend plugin
Use the global stack instance variable and account for it potentially being None
Store the global container stack as an instance property
Added wildcard to filtering
Per object settings filter now uses correct bool types (instead of strings)
Removed stray = sign.
Fix creating print job name
Disable asynchronous loading of SettingItem when Qt Version < 5.5
Document QTbug
Properly serialise all settings to g-code file
Document GCodeWriter class
...