We'd assume so, but there is a permissions node for it. If it can't be read by the user, they can't navigate to the printer's overview page. So we should hide the button then.
Contributes to issue CURA-9220.
This way, any new printer types we define will automatically get these properties that are used by the monitor stage anyway.
Contributes to issue CURA-9220.
This property was defined for Cloud printers, but not for Network printers. In QML this then resulted in an error saying that null cannot be assigned to a bool (for the 'visible' property). The visible property then defaulted to its default, true. And so it was always visible, but still had an error.
The error is now solved so that I can also check for other properties in this visible check.
Contributes to issue CURA-9220.
With the Qt6 upgrade, we have to treat enums as full enums, within their normal class namespace and such. They are no longer just integer-globals static in the QtCore.Qt class. They are no longer treated as integers by PyQt.
Other places that checked for such errors were already doing it like this.
Contributes to issue CURA-9100.
Adds type checking here and there to catch such errors in the future.
This makes it handle the optional fields of this model better.
Contributes to issue CURA-8730.
This makes a few things easier. You could see None as being a signalling value to indicate that we don't know capabilities, but this signalling would get lost anyway in the serialising to the metadata. So just an empty list is fine for now.
Contributes to issue CURA-8671.
Previously it was encoded as a stringified Python list of strings, which is much harder to parse.
This would go wrong if any of these capabilities have a comma in them, but I think that would be bad practice for keywords like this anyway.
Contributes to issue CURA-8671.
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