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
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.
Conflicts:
plugins/Marketplace/resources/qml/Marketplace.qml -> Whole layout changed, while the onboarding banner got added. I re-added the onboarding banner item and the new search link at locations where I thought it was appropriate.
plugins/Marketplace/resources/qml/Packages.qml -> A small conflict where new properties got added while I moved the width property up a bit for consistency. Easy enough to fix.
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.
Rich Text is rendered a bit like HTML, where all of the whitespace gets changed into a single space. This is normally not so bad, but with newlines it's annoying. This preserves the newlines from the description.
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.