Previously, this would cause the Marketplace to freeze. We're still not entirely sure why. It seems to be a bug in Qt, but it's rather hard to deal with.
This new solution is nicer in some ways but not as neat in others.
- We're no longer clearing the content of the loader, so the QML and the package data remains in memory while the Marketplace is closed. We deem this to not be a problem, because the memory usage of this package data is only a couple of kB, nothing compared to the memory used by the slicer when it loads a model.
- On the other hand, it's now possible to programmatically change the tab there, instead of manually having to click the buttons.
- Fixes a bug where the highlighted tab of of the tab bar doesn't update when closing and re-opening the Marketplace. And a bug where there was a search bar for the manage page while it didn't work.
Contributes to issue CURA-8565.
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.