Converted doxygen style comments to reStructuredText style in the files
found in Cura/cura/Model directory recursively using the script
dox_2_rst.py (provided in the Uranium repo). Comments were manually
checked and changed if needed.
Note: dox_2rst.py struggles with decorated functions.
When the MachineNode is updated through _loadAll, it was not updating
its VariantNodes when they already existed. This caused an issue to
UM2+Olsson block printers, where changing the G-Code flavor to Marlin
was not updating the VariantNodes to search for materials (since the
variants already existed).
This commit fixes that by forcing an update to the existing Variant
nodes.
CURA-7354
This is just something I encountered. Could be that some profiles got corrupted. In my case, I had a bug in Uranium that I fixed later.
Contributes to issue CURA-6793.
We only need the metadata, so far. Found with a test that got broken because I wasn't mocking out the entire container.
Done during Turbo Testing and Tooling.
We don't need to inherit from QObject if we expose the name elsewhere. This prevents having workarounds for C++ vs QML ownership, and also allows us to test this while mocking out CuraApplication.
Done during Turbo Testing and Tooling.
It's not behaving as expected here. For instance, Ultimaker 3 wasn't specifying has_machine_materials and thus only the base materials would get loaded, but clearly the Ultimaker 3 has materials specialised for it.
Whether or not a printer has materials specialised for it is now determined by whether the specialisations exist in the material files. So we don't need the metadata entry any more. It seemed to have not been in use anyway, except by one printer which specified that has_machine_materials is true. I've now made it behave as if it's always true.
Contributes to issue CURA-6831.
If any profile has a different intent than default, the entire group becomes that intent. There can only be one intent that's different from default per group.
Contributes to issue CURA-6600.
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.
Otherwise the dictionary ends up being filled by container ID which then causes the quality type to not be present in the dictionary, ending up with an empty list of quality groups.
Contributes to issue CURA-6600.
You can now be assured that there is ALWAYS at least one child node, except for child nodes of intent profiles which don't exist.
Contributes to issue CURA-6600.
Among the machines, variants, materials, qualities and intents, only machines and materials can ever be added during runtime. For the rest, we don't need to listen to these signals.
Contributes to issue CURA-6600.