Since the zero point is always in the centre, we can just re-use this loop to prevent code duplication and gain a minor speed increase.
Contributes to issue CURA-4150.
This definition was provided to me via e-mail. The initial data was badly formatted, so I corrected it and verified back with Michael Wildermuth that the new profile worked. Apparently it works, so thank you Michael.
```
cura.desktop: error: (will be fatal in the future): value "cura-icon.png" for key "Icon" in group "Desktop Entry" is an icon name with an extension, but there should be no extension as described in the Icon Theme Specification if the value is not an absolute path
```
__Solution:__ Remove `.png`. __PLEASE NOTE__ that for this to work, cura-icon.png must be located in one of the directories in which desktops search for icons, such as `/usr/share/icons/hicolor/128x128/apps/`. Please make sure it ends up there (also in the AppImage, too.)
```
cura.desktop: error: value "application/sla;application/vnd.ms-3mfdocument;application/prs.wavefront-obj;image/bmp;image/gif;image/jpeg;image/png" for string list key "MimeType" in group "Desktop Entry" does not have a semicolon (';') as trailing character
```
__Solution:__ Add `;`
Reference:
266072586 (L538-L539)
CURA-4188
Custom FDM printers in 2.5 don't have multi-extrusion support but they
do since 2.6. Upgrading from 2.5 to 2.6 will not create the missing
extruder stacks for the old custom FDM printers, which causes a crash.
This fix makes sure that all custom FDM printers will have 8 extruder
stacks during the upgrade so that Cura can still start normally and
those printers will still be usable.
CURA-4113
The Don't show again checkbox is on the same row with the buttons. In
some translations, the text for the checkbox is very long, which
overlaps with the button.
CURA-4107
Now we always create a definition changes container for a stack,
checking if the definition changes is empty in SliceInfo doesn't work.
It should check the content too.
This was discussed with the materials team. A layer height of 0.4mm for a 0.4mm nozzle could give problems. This would be even worse with a 0.25mm nozzle.
It says so in the context of the build dimensions translation. Not yet in the context of the HTML tags with <filename> and such, but it will do that for the next translation round properly.
Contributes to issue CURA-4113.
CURA-4107
In old Cura, there is no definitionChanges container, so loading a
project file from an old version will result in stacks with empty
defnitionChanges. This will cause an unnecessary auto-slice problem when
we switch between the extruder tabs for the first time. This action will
trigger a piece code in MachineAction which creates a definitionChanges
container for the active stack if it is empty. This eventually triggers
a propertyChanged signal and results in an unncessary auto-slicing.