Not only do I now have an interface where the user doesn't get any feedback when syncing happens, but even in the log there was nothing shown when it happens.
Contributes to issue CURA-8609.
This updates the metadata entries. Naturally this updates every 60 seconds in Cura, but it could also manually be triggered by the refresh button.
Contributes to issue CURA-8609.
It seems that due to the threaded nature, the limit to the number of open file handlers could be reached here. Or it could just be locked or something of course.
Fixes Sentry issue CURA-2V2.
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.
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
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 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?
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