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.
This is normally not possible from the interface. However on MacOS, the application menu gets carried to the top bar of the operating system. It is not blocked there, and the user could write a project file before they even add a printer. This prevents Cura from crashing when they do that.
Fixes Sentry issue CURA-2ZR.
If two requests to the API occur at the same time, they will both see at the same time that they need an access token, and if it is expired they will both see that it needs refreshing. The server then sees two refreshes, both with the same refresh token. This is not allowed. The second one then gets a failure to refresh the token, which causes the user to log out.
Instead, we'll stop one of the refresh requests. They were fire-and-forget anyway, so it's not needed to actually continue the request.
Contributes to issue CURA-8539.
The `printJob` now also contains a status for detecting aborted prints
that were awaiting cleanup, preventing the need for the additional
checks in the `await_cleanup` status.
We can't change this index to an integer, because varying variables can't be integer, even though this variable will only really be tested on vertex level. Not sure if varying was the right choice, but I don't want to change that.
This prevents a crash, probably only occurring on certain GPUs.
Contributes to issue CURA-8657.
Conflicts:
resources/i18n/de_DE/fdmprinter.def.json.po -> German translations got some fixes in master while we also updated the new translations for 4.12.
If we first process the replacement keys, the replaced string can't be found in the translation database, so you don't get a translation of the phrase 'Finishes x at y'.
Fixes#10718.
We do retracts/unretracts on different heights sometimes, for instance after a pause. This would get seen as a new layer. It's quite safe to say that purely retracts and unretracts on a different height do not constitute a layer in a normal g-code file. There would be nothing to draw anyway.
Contributes to issue CURA-8522. Fixes#10282.
- Capitalization for camelCase.
- Indentation.
- We don't really even _have_ a concept of what a 'Beta' for a script is, and this was a unilateral descision from a single contributor instead of validated by the proper channels like QA, V&V, etc.
- Pretty sure that while those labels aren't used _within_ Cura proper, other people (and maybe plugins?) rely on them for (further)post-processing. Also the distinction between CAZO and CAZD was lost.
part of CURA-8655
Conflicts:
cura/Machines/Models/MaterialManagementModel.py -> On Master we had temporarily reverted the action of this button because it became apparent that the sync wasn't going to be in 4.12. That revert is no longer necessary if this is merged.
Added a dictionary where additional user rights can be set.
A plugin such as the DigitalFactory can update this dictionary
if certain account rights change. The `account.additionalRights`
is intended to allow us some flexibility, without breaking the API
in the future.
The Application Switcher now queries the additional account rights,
which is updated by the DF plugin to only show `My printers`,
`Digital Library` and `Print jobs` when the user has access to the
DF.
Contributes to CURA-8624
Yes, it's my name. I'm okay with people learning that if they are really looking. I'm less okay with search engines learning that. Removing my name here linked to my nickname will eventually cause search engines to unlink it too.
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.