A new function has been added to the MachineManager class to check for core compatibility in the Factor4 machine. This function ensures the selected core is compatible for use with the Factor4 machine and if not, it displays a warning icon with an appropriate message.
CURA-11851
Instead of getting all the settings and checking for their state, run only once through all the containers and gather only the keys having a User state.
CURA-11475
Instead of getting all the settings and checking whether they have a user state, just take the settings from the user changes containers, which is way faster.
CURA-11475
For the `skirt_brim_extruder_nr` setting it is possible for the setting to be -1; this means that we have no preference for extruder. This allowed us to implement the "multi-material brim". When we were requesting the initial extruder, and this value was set to -1 we were default to the 0-th extruder. However, this was incorrect in the situation where the first extruder is not used.
Fixes#17501
We had a lot of Look up Tables scattered around in the cura repository. This can be solved by adding a `bot_id` entry to metadata of the various makerbot extruders/materials/definitions
We wanted to select an extruder based on wether or not it has support-material, so that the user doesn't have to think about selecting a support extruder any more and in most cases, can't forget anymore either. The formula present in fdmprinter to do that was not only an unreadable nightmare, but also very slow. We decided to pull most of that functionality into the settings-function machinery instead (but just a bit more generic so other properties can be selected, not just 'material_is_support_material').
done as part of finishing off CURA-10643
Bit of an ugly hack. At later point in the code it is assumed the first element of the list is the main part and the remaining elements form the suffix. Intent and the profile form both the main part so these need to be grouped together.
Cura-9773
Generation quality display names in `CustomPrintSetup.qml` and `PrintSetupSelectorHeader.qml` were so similar that I decided to combine the logic.
Cura-9773
Some brim settings seemed to behave as if they where linked, when in fact for any extruder set to -1 the 'default extruder' was set by some hacky code that supposedly fixes a 'dissallowed area' issue, very likely also related to the skirt/brim settings. Since dissalowed area for skirt/brim will not be a thing anymore, at least in the front-end, due to CURA-9066 (the 'parent' jira ticket that was blocked by this bug); it was sinplest just to remove the hack altogether. (Otherwise we'd have to make an artificial distinction between -1 and None as it relates to 'Not Set/Used' versus 'Not Overridden', only to then force it back to -1 in situations that call for it -- like communicating to the engine.)
CURA-9553