When centering a scene node, TranslateOperation is used in lieu of SetTransformOperation, to avoid combinations of mirror operations behaving like rotation operations. Instead, any given node is simply translated to 0,0,0.
Also move things that we didn't think of previously, such as extruder offsets. You can't enter them as a user in the interface if it was single-extrusion, but you could've edited the files.
Contributes to issue CURA-4708.
Since machine_extruders contains only the extruder stacks (not the global stack) but profile_index counts through all stacks including the global stack, we need to increase the length of machine_extruders by 1 when comparing.
I also swapped the comparison around since I think it's more logical this way around.
Contributes to issue CURA-4738.
Roel Versteeg (Rovex) has kindly agreed to let us use his model of the printer, https://www.thingiverse.com/thing:1933864
Since the model is a bit to detailed for our use I have spoken with Jon MC (security0051) that had already modified for better fit in editor. https://www.thingiverse.com/thing:2592417. He has also agreed to let us use his version.
The replacement pattern is (optionally) extended with an extruder_nr: {setting_key,extruder_nr}. The extruder_nr can either be a number (-1 for the global stack, 0 or higher for an extruder), or a setting keyword such as support_extruder_nr etc.
Contributes to #1296
sidebar_collapsed is more consistent with other options and setting names we use. Better change it before the next release rolls out otherwise we'd have to do a version upgrade.
Also changed some code style things to be in line with our guidelines.
Contributes to issue CURA-4234.
The string equality works on the 3.6 but not on 3.5. This works on 3.5, so I hope it also works on 3.6 (but I don't have that computer with me right now).