The namechanged signal was not connected at startup, so the update would only work if you change material first before renaming.
Contributes to CURA-4243.
When you make the ID of the subprofile unique it doesn't get linked to the base profile any more since the '#2' gets put at the end.
Contributes to issue CURA-4243.
The original was based on reading the original file back, but that won't work if the files are provided by an arbitrary container provider. Instead we'll actually make a copy of all the profiles that need to be copied. It's much faster as well.
Contributes to issue CURA-4243.
This model is created while the extruder stacks have not yet been filled in. You can't connect yet. When the extruder is ready, _extrudersChanged will be called again and then the new extruder will also get connected.
Contributes to issue CURA-4243.
As explained in the block of documentation, we can't find the variants because there is no guarantee that the variants have been loaded by the time that the metadata of materials is deserialised and we don't know their IDs either (so no lazy loading). This registers a function to be called upon completely loading the metadata, which runs a query on the metadata to find the variant by its definition and name. A bit hacky but I see no better solution.
Contributes to issue CURA-4243.
This prevents us from having to make an expensive findContainers call if it's not necessary, and also prevents us from unnecessarily loading the subcontainers in a loop during loading.
Contributes to issue CURA-4243.
It must now return two dictionaries: One for the profiles that have been completely loaded and one for the profiles that are only metadata. We could probably improve on these a little bit, since all of these (except the material model) will now load all available quality profiles. I'll see if it is necessary to optimise that.
Contributes to issue CURA-4243.
My IDE shows the str(inst) representation of an object when indicating what value is in there. This makes it easier to find stuff. It'll also make debug prints more clear than the default <XmlMaterialProfile.XmlMaterialProfile.XmlMaterialProfile object at 0x12345678> stuff of Python.
Contributes to issue CURA-4243.
Parent settings are not used by the engine. Or they shouldn't be, because the parent settings are disabled by the front-end when all of their child settings are overwritten. Then you'd have a parent setting that is used by the engine but you can't modify it. Also, the command-line slicing doesn't load parent settings since it can't parse categories and such.
Removed the "not supported" materials. So all the other material quality profiles, BVOH, global, Innoflex60, PET, PLA and PVA are supported by our printer. In Cura 3.1 beta only PLA is supported.
Parent settings are not used by the engine. Or they shouldn't be, because the parent settings are disabled by the front-end when all of their child settings are overwritten. Then you'd have a parent setting that is used by the engine but you can't modify it. Also, the command-line slicing doesn't load parent settings since it can't parse categories and such.