The cloud printers get added asynchronously, which could lead to a crash because the dict gets modified while we're iterating over it.
Fixes Sentry issue CURA-2EN.
We want to keep it this way so people can still make plugins work for older versions of Cura, like 3.6, where the 'api' field with just a single major version, instead of the 'supported_sdk_versions', which can be either a version-string like '7.6.0' or a list of version strings.
Some ultimakers tend to choke if you try and send a lot of materials in one go.
Previously we would also always send the materials on the main thread, which would also make
the interface freeze a bit. That should no longer happen.
The implementation of this is not really great, but since this is a hotfix i've opted to change
as little as possible.
CURA-8224
Previously, Arcus, Savitar, and pynest2d were being build with a missing sip flag. This led to Cura
getting `ValueError: PyCapsule_GetPointer called with incorrect name`, if those libraries were not
imported (even if they were unused).
This flag was added in the following commits:
* 83393f989c
* e9e530d963
* bd440b50ad
Since the issue seems to be gone now, the unused imports should be removed from Cura.
All credits go to Rex Dieter for figuring that this missing flag was the issue.
https://src.fedoraproject.org/rpms/libarcus/pull-request/1#request_diff
CURA-8146
Subdivided the new icons in 3 size categories. As requested by UX
Used the company naming scheme for uniformity and easy recognition.
Known issues:
- Top/Bottom category wasn't taken into account by UX at the time. Since
this is a recent addition. Both the Walls and Top/Bottom will be updated.
- Cloud/Network connection icons 12px don't render correctly. Due to the
theme-ing.
- Extruder Icons do not render correctly.
CURA-8010_new_icons
When using the visibility of the progress bar to detect if a job is already being sent, then make actually sure the progress bar is visible the moment the job starts, not at some unspecified time later in a method that might not even trigger if there is already a mesh ... so it's unlikely to even work, since the thing it was intended to prevent _very_ likely has the same mesh anyway.
CURA-8004
Took a while to figure out exactly what to do here. But the task itself is simple.
The Ultimaker software apparently doesn't accept special characters here. The regex here is exactly the inverse of the regex that they use to accept job names.
Done as a 5 minute fix.
One of the reasons this bug (see parent of this commit ... or the issue nr if you have internal access) was so vague is that A. the user was insufficiently prompted, and B. no one could find anything in our logs.
CURA-8004
Since we use that to detect when the mesh is already uploaded, and thus can be reprinted, this could cause problems, since, while we do properly set it to None when an error is returned, if the request never returns to us, or if a reprint is started while the mesh is still uploading, the print-job cache could be set while the mesh wasn't actually there yet. Which could in theory have maybe caused the problems we see.
CURA-8004
The Cura 4.9 release will have expanded functionality. If you have a plug-in that uses this functionality, marking it as using SDK 7.5.0 will notify older Cura releases that they can't use that plug-in.
The code is clearly written to take into account that 'addresses' may be null. But not that the whole 'addresses' attribute may not exist. And then instead of printing one warning (Could not get information about XX) it instead printed a stacktrace and retried and printed a stacktrace and retried and printed a stacktrace and.... It ended up driving me a bit nuts when looking at the logs for unrelated reasons. So Ifinallay fixed it. Could end up as a speedup in some cases as well I suppose?
This runs a filter optimisation to choose the best PNG filters for compression, then RLE optimisation. The pixel value output is still the same, but file size somewhat smaller.
There are really two types of errors that the HttpRequestManager can throw: Errors that it understands and errors that it doesn't understand. We must now intercept an error that it doesn't understand.
Contributes to issue CURA-7760.
This message is shown to the user in Cura when the digital
factory returns a 409, because the queue is full
CURA-7760 sending multiple printjobs notifications