I considered rewriting the section title property to be QML-only and translate it from the QML, but this is a bit simpler in the end, even though there is data duplication now.
Contributes to issue CURA-8565.
The server is queried using the local packages_id and version to
determine if they can be updated. The Manage button state is set
accordingly. This is done in an async way to keep the UI responsive
A.t.m I'm not sure if I might need to move this logic out, since
we also need to make this query when check periodically for updates.
when the list is not shown. But that would also entail creating
the installed packages list before the Manage Packages tab is ever
created in the Marketplace.
Contributes to: CURA-8587
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.
The state and styling of this coupled with the available options.
Discussed with UX that primary state: Install, Enable, Update while
secondary states are: Uninstall, Disable
Each primary/secondary state also has a busy state, with the verb
and spinner.
Contributes to: CURA-8587
Some plug-ins could have very long descriptions now. We show all of it, but that could go off the screen in theory.
This makes the content scrollable if it goes off the screen.
Contributes to issue CURA-8565.
If it is detailed, it currently hides the short description. That is not quite enough, but we'll expand that behaviour.
Contributes to issue CURA-8565.
This is already set by the StackView, which (logically) requires that the children fill the entire space taken by the StackView.
Contributes to issue CURA-8565.
This allows a sort of full-screen pop-up to replace the entire Marketplace window contents, on top of the normal contents. The normal contents are kept as they are, but out of view.
Contributes to issue CURA-8565.
When there are no compatible printers, we show that there is no information. After all, all materials should be compatible with some printer.
When there are no compatible support materials, we simply show 'None', because a material could be incompatible with all known support material types.
Contributes to issue CURA-8585.
The union vs. intersection here is a guess. I'm guessing the online Marketplace displays compatibility if ANY materials/combinations are compatible, not requiring that ALL materials/combinations are compatible. We'll have to review that.
Contributes to issue CURA-8585.
This one is quite complex because the support material names are in their profiles, so we need to consult the profiles, if present.
Contributes to issue CURA-8585.