I don't know what exactly caused this since it's impossible to trace. But the crash happened with a setting called 'dual_gcode' which currently doesn't exist in Cura. So I think it must be some plug-in that adds it. In any case, it's good to be defensive about this sort of thing. Good type checking would've caught this for us.
Fixes Sentry issue CURA-JB.
Subtract the thickness of the walls from this setting. This most likely ends up negative and thus not counting because it's maxed with something that starts at 0.
I've also simplified this algorithm a bit. Easier to follow if you ask me.
Done as a 5 minute fix.
Empty groups don't have a bounding box. I don't know how an empty group could've gotten there but maybe there is something happening with a plug-in or something.
Fixes Sentry issue CURA-FM.
Conflicts:
resources/texts/change_log.txt: Both modified but had different wording for the pause-at-height bugfix with motor timeout. I used the wording in 4.6 since it was more extensive.
It doesn't affect the build volume, since we don't need to move the prime blob disallowed area. It is projected onto the build plate after all.
Most likely this won't affect anyone since the prime Z position is a machine setting that can't normally be modified. But hey, it's a bit more precise anyway.
Found during work on the Settings Guide.
Now that libSavitar allows us to read the object id from the 3mf file,
this id will be propagated as an id inside CuraSceneNodes and it will
be used as an identifier to find the object that has to be refreshed.
CURA-7333
Refactored the code in order to extract the index of the node inside
the file and then use that index to reload the correct object from the
file.
CURA-7333
Apparently this can happen. I don't know what shapes this happens with though. I'm guessing it's got something to do with degenerate shapes.
Fixes Sentry issue CURA-DZ.
Reproduction steps:
* In the Material Manager, click on 'Import material'.
* Change the file type in the file dialogue to 'All files'.
* Select any .def.json file, for example from Cura's own resources/definitions folder.
Previously this crashed the application. Now it shows the user an error message instead.
Fixes Sentry error CURA-D4.
To do this, I'm giving more power to the NumericTextFieldWithUnit QML element, to allow an arbitrary minimum and maximum. Enforcing this minimum and maximum is fairly simple with a JavaScript hook. This hook is necessary because the DoubleValidator allows intermediary values which defeats the purpose, essentially allowing any number as long as it has the correct number of digits.
Printers larger than 2km would start to give overflow errors in its X and Y coordinates. Z is okay up to about 9 billion kilometres in theory, since we don't need to do any squaring math on those coordinates afaik. In practice I'm doing this because at very high values the Arranger also gives errors because Numpy can't handle those extremely big arrays (since the arranger creates a 2mm grid).
Fixes Sentry issue CURA-CB.