If the machine_extruder_count is not taken into consideration on machine creation, calling the
extruderList of that machine will return an incomplete list of extruders (since it considers the
default machine_extruder_count). This causes problems in machines with settable number of extruders
where the default machine_extruder_count is 1 while the machine may have more than 1 extruders.
The problem becomes especially visible when opening a project file with e.g. a CFFF with multiple
extruders, because when the machine is created we do not know yet how many extruders the printer
actually has.
CURA-7646
The extruders dictionary has been deprecated in favour of extruderList.
Done during Turbo Testing and Tooling to reduce the number of warnings in our log.
Should be completely transparent. It'll fail the unit tests though because it now pretends that all printers have machine nodes.
Contributes to issue CURA-6793.
A good default.
Possible bug: If there are multiple matching quality profiles but the preferred quality profiles matches none or multiple of them, a random one is chosen. The random profile for the global stack may not match the random one for the extruder?
Contributes to issue CURA-6600.
No need to really implement the fallbacks any more for when there are no materials. Only for when the preferred material can't be found.
Contributes to issue CURA-6600.
The 'parent' parameter was unused, so I removed it. But I didn't remove all things that called it, apparently. I just removed some. I didn't try the stackbuilder.
Contributes to issue CURA-5330.
- Create SingleInstance class to handling single instance stuff.
- Instead of calling getInstance() everywhere, initialize each object
explicitly in order when application starts and getInstance()s do not
create instances any more and they merely return the created
instances.
- Only set initial values in construtor functions __init__(). Move the
initialization of context-aware (i.e. things that depend on other
things) to separate functions.
- Split application creation and initialziation into several steps and
them should be called explicitly in the correct order.
When any extruder position doesn't match when adding a container, don't add any of the extruders. Don't add faulty half-data to the registry!
Contributes to issue CURA-5045.
And in the rest of the locations we must then check if it's None and handle that gracefully.
Here we assume that the getContainer message shows a message to the user if necessary. For now we'll just log it.
Contributes to issue CURA-5045.