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.
* Fix PermissionError when importing http.server
Instead of crashing, now it'll just not start the server. This means that you won't be able to receive the response from the log-in so you won't be able to log in. The browser gives an error that it can't find the page on localhost. But at least it doesn't crash.
Fixes crash CURA-3Q.
* Log an error when the HTTP server can't be started
Contributes to crash CURA-3Q.
* Indicate that types are optional
Attempt to fix the typing issue with MyPy. I can't run this locally so the CI server will have to tell me if this fixed it.
Contributes to Sentry issue CURA-3Q.
See CURA-3M in sentry. It most commonly happens with the anycubic,
since it had some weird stuff with it suddenly supporting materials.
This change will make it so that no crash happens. Old profiles will still have
an empty material. This isn't really an issue, since the interface will mark this
as an error (prompting users to switch).