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.