So libnest2d is giving a segfault when it's being triggered without any disallowed areas. This is because we then give a single disallowed area for the border around the build plate, and give this disallowed area 0 vertices. Because libnest2d doesn't do defensive coding here, it's going to crash, taking Cura along with it. The crash is in libnest2d's function 'libnest2d::_Item<ClipperLib::Polygon>::rightmostTopVertex()'.
This segfault started happening recently in Cura. However it only happens when there are no disallowed areas. Steps to reproduce the error are:
- Use Custom FFF Printer.
- Set the Adhesion Type setting to 'None'.
- Load any two models.
I tracked the segfault down to this commit: 74ddbaab4b . That commit by itself is slightly mysterious but looks fine to me. It did give the hint that this segfault might be caused by empty polygons though. So for that reason, I figured that filtering out the empty polygons here in the arranger might fix it; and indeed it does. Passing empty polygons as fixed/disallowed areas is useless and invalid anyway. Apparently libnest2d doesn't deal well with it, but we might as well not send those polygons over then.
There could be other methods of connecting than the network connectivity of the UM3NetworkPrinting plug-in. For instance, perhaps other network connection plug-ins can provide information in this monitor stage. Or the user might want to use a USB cable.
I'm explicitly quite vague about how it should be connected because this label should work for all types of connections except UM3NetworkPrinting.
Fixes#9444.
- Remove donkey: We where showing our donkey due to an unfortunate abbreviation/truncation of 'Colorblind Assist'. Now that should already not show in for a default install, which was fixed in the previous commit, but also just give the box some more space.
- Revert most of the rest of the preferences/general page back to the old controls (except for the combo-boxes, which needed to be upgraded in order to work on MacOS 11), pending a _proper_ redesign to the newer style of this page.
CURA-8161
The signal `setActiveFocusToNextSetting` has an argument which wasn't being passed in the
`onSetActiveFocusToNextSetting()` function, which was causing the broken behavior.
CURA-8166
Theme and Language (in the interface) would stay on 'Colorblind Assist' and empty respectively, even if the actual theme (and obvioulsy the language) where different.
CURA-8161
These initial layer speeds were only applied to the model (not the raft).
Number of Slower Layers indicates how many layers the initial layer speed should apply to. So if that is 0, the initial layer speed doesn't apply to anything any more, and the setting should be hidden because it has no effect on the print.
Found by Markouustalu in #4439.
If the user account scope is outdated, delete it when upgrading from 4.8 to 4.9. This means that
the user will have to log in again, to make sure they get the correct account scope.
CURA-8093