A bit of a hack and it'll be very slow. But it should work. Right now this crashes though because it still calls the Material Manager.
Contributes to issue CURA-6600.
Otherwise the iteration can happen in any arbitrary order (due to the dict) and this can cause the result to not match to the desired combination of configurations per extruder.
Contributes to issue CURA-6600.
That's where the function was moved.
This function is still being called from various places, even though it's protected. Should change that...
Contributes to issue CURA-6600.
This function is specific to the management page (for the most part; some things seem to call the _createQualityChanges private function nonetheless).
Contributes to issue CURA-6600.
This is specific to the quality management page, so moving it here prevents QualityManager from becoming a big ball of spaghetti again.
Contributes to issue CURA-6600.
I hope that the machine node doesn't become a collection of functions that don't fit anywhere else, but this isn't contributing to that hope. However I still think that this is particular to a certain printer, so it's within the object-oriented programming paradigm. And it's also within the scope of the class, which is getting the available profiles. So it still sort of fits.
Contributes to issue CURA-6600.
Look how greatly this is now simplified.
The fallbacks for which material nodes to check is not yet implemented. Will do that next.
Contributes to issue CURA-6600.
Slightly more complex than the original pseudocode was indicating: It needs to filter on the available quality types first in order to only show the quality types that can be printed with all extruders, but still show the union of all intents for those quality types.
Contributes to issue CURA-6091.
This ensures that if a (duplicated) material does not have a generic variant, that
the material it was copied from will be added to the fallback list.
CURA-5898
CURA-5694
For a machine, if it has extruder-specific qualities, when we look up
extruder qualities, we should NOT fall back to use the global qualities.
CURA-5694
For a machine, if it has extruder-specific qualities, when we look up
extruder qualities, we should NOT fall back to use the global qualities.
CURA-5694
- Add convenience functions into GlobalStack
- Use "has_variants" and "has_materials" instead of
"has_variant_materials"
- Remove "has_variant_materials"
- For extruder qualities, skip global qualities if the machine has
variants or materials
CURA-5668
The last fallback is the global qualities, either machine-specific or
generic, but not using both. Because if a machine defines its own global
qualities, it is intended to override the existing ones, so do not
fallback again in this case.