CURA-4204
When a new material is created during project file loading, the material
for each stack is set according to the parent material ID, but actually
the child material should be used. This fix uses a hack to find the
corresponding child material for a stack so when a user chooses to
create a new material during project file loading, the material can be
correctly set.
CURA-4188
The newly created extruder stacks don't have user containers, so the
user changes cannot be saved. This fix makes sure that in the upgrade,
user containers will be created.
CURA-4188
Custom FDM printers in 2.5 don't have multi-extrusion support but they
do since 2.6. Upgrading from 2.5 to 2.6 will not create the missing
extruder stacks for the old custom FDM printers, which causes a crash.
This fix makes sure that all custom FDM printers will have 8 extruder
stacks during the upgrade so that Cura can still start normally and
those printers will still be usable.
CURA-4107
Now we always create a definition changes container for a stack,
checking if the definition changes is empty in SliceInfo doesn't work.
It should check the content too.
CURA-4107
In old Cura, there is no definitionChanges container, so loading a
project file from an old version will result in stacks with empty
defnitionChanges. This will cause an unnecessary auto-slice problem when
we switch between the extruder tabs for the first time. This action will
trigger a piece code in MachineAction which creates a definitionChanges
container for the active stack if it is empty. This eventually triggers
a propertyChanged signal and results in an unncessary auto-slicing.
CURA-4167
Custom FDM printers have multiple extruder stacks by default but not all
of them may be used. The actual number of extruders depends on what's
defined in the global stack. Because in the current architecture,
single-extrusion machines don't have extruder stacks, in project
loading, the extruder count in the global stack should be used so these
cases can be handled properly.
Otherwise we fall back to the manufacturer in the machine definition. If that fails too, we fall back to Unknown (rather than an empty string).
Contributes to issue CURA-4157.
CURA-4092
- Keep the error check finished signal.
- Restore the old way of triggering an auto-slicing which depends on a
setting value change singal.
- Add a mechanism to make sure that if there is an error check, the
auto-slicing will only be triggered after the check finishes.