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.
And make all subclasses run its super _update as well to make sure that this gets updated for them. It's necessary for the _createMaterialItem functionality because it needs to add an is_favorite role.
Contributes to issue CURA-6600.
The MaterialManager.materialsUpdated signal was only called once upon init and for the rest when a favourite was added or removed. So only the FavoriteMaterialsModel would need to listen to it.
Because the MaterialManager is being deprecated, the favourite materials model now just listens to the preferences changing instead, as it was supposed to be doing anyway.
Contributes to issue CURA-6600.
Conflicts:
resources/bundled_packages/cura.json -> 4.1 to 4.2 upgrade package added simultaneously
tests/TestMachineManager.py -> Due to changes in conftest.py
tests/conftest.py -> Simultaneously expanding the magic mocks to have some correct properties
It was only being called once upon initialisation. Turns out that this model updates itself properly only because the qualities don't change during runtime unless you change the active quality group (due to materials changing) or the printer itself.
Contributes to issue CURA-6600.
The category is changed after constructing by the QML code in order to set its property.
This is now updating twice: Once for the default category and once for the final one set by QML. This is a bit inefficient. But make it work before optimising it!
Contributes to issue CURA-6597.
We don't want the profiles, because that'd be specific to one extruder. We want the quality types and intent categories as tuples again.
Contributes to issue CURA-6597.
This won't run. Don't try to import this class yet. It's outlining what we need to implement to get intents per stack.
It does no form of caching at this point. Build first, optimise later, right.
Contributes to issue CURA-6091.
Conflicts:
plugins/VersionUpgrade/VersionUpgrade41to42/VersionUpgrade41to42.py -> There is a new version upgrade in master, so the old one is sort of obsolete. We may have to move this part to a new version upgrade for 4.3.
plugins/VersionUpgrade/VersionUpgrade41to42/__init__.py