33 Commits

Author SHA1 Message Date
Casper Lamboo
9fa6698da3
Merge pull request #11536 from Ultimaker/CURA-8834_marketplace_packages_install_status_in_list
Show install, uninstall & disable buttons in packages list
2022-02-24 13:39:49 +01:00
Jaime van Kessel
095b8dc5dd Show install, uninstall & disable buttons in packages list
This splits up the single show controls property into three seperate ones
and no longer hides installed packages from the plugin & materials list

CURA-8834
2022-02-23 16:51:26 +01:00
Jaime van Kessel
df9d2d85c4 Add help links to banners
CURA-8762
2022-02-23 10:12:21 +01:00
Jaime van Kessel
6a39862349 Merge RestartManager into marketplace
CURA-8588
2022-01-03 11:12:52 +01:00
Jaime van Kessel
3b2be48390 Ensure that check for updates is called on startup of Cura
CURA-8588
2022-01-03 11:01:17 +01:00
Jelle Spijker
1c0e484069
Only show manage buttons in manage tab or detail view
Contributes to: CURA-8587
2021-12-07 11:25:16 +01:00
casper
e83f8e4b8a
Add correct text to material and plugins onboarding banners
CURA-8564
2021-12-03 13:26:48 +01:00
Jaime van Kessel
628be10e98
Add campaign links
CURA-8563
2021-12-03 13:26:48 +01:00
casper
61275ed9bc
Easy navigation to Cloud marketplace
CURA-8563
2021-12-03 13:26:41 +01:00
casper
fe19587b7f
Rename properties in marketplace onboarding banner
CURA-8564
2021-12-03 13:26:36 +01:00
casper
67fc514b8f
Use an alias property for the banner icon
CURA-8564
2021-12-03 13:26:27 +01:00
casper
f7720d2a0d
Rename property bannerBody to bannerText
CURA-8564
2021-12-03 13:26:19 +01:00
casper
7e1247b171
Directly use bindings in banner pages
CURA-8564
2021-12-03 13:26:16 +01:00
casper
815aadb0d7
Add links to read me support pages
Note that since the support pages are not yet ready the "read more"
buttons are hidden. Once the correct link is added they become visible
again.
2021-12-03 13:26:14 +01:00
casper
748101ce69
Remove banners when clicking close button 2021-12-03 13:26:06 +01:00
casper
5e4f67c7e1
Display different content on each of the marketplace onboarding banners 2021-12-03 13:26:02 +01:00
Jelle Spijker
86d5d315bc
Differentiate between local and remote packages
There is a distinction between packages which are already
installed on the local machine and packages which are
available on the remote server. Even with this difference
it is important that they are handled the same and can be
reused in the same GUI elements.

In order to reduce code duplication I created a parent object
PackageList which contains the base logic and interface for
the QML and let both RemotePackageList and LocalPackageList
inherit from this.

UX specified that the gear icon (Settings.svg) should be
separate from the tabs of material and plugins. This also
ment that the current tab  item couldn't set the pageTitle
anymore. This is now defined in the Package component and
set when the loader has loaded the external QML file.

Contributes to CURA-8558
2021-11-01 17:12:18 +01:00
Ghostkeeper
cbd1b8fbf7
Implement filter on PackageList
The filter affects the URL. So we can't just start a request in the init. We need to request once all of the properties have been set.
We also can't start the request when the filter changes, because there will be more filters and we don't want to start multiple requests. It needs to be manual.

Contributes to issue CURA-8557.
2021-10-28 18:59:03 +02:00
Ghostkeeper
c31665f069
Move list of packages QML to a re-usable component
We'll need to have the same design for plug-ins and for materials.

Contributes to issue CURA-8557.
2021-10-28 17:34:55 +02:00
Jelle Spijker
31dcf21a3e
Disable horizontal scrollbar
The layout of the plugin/material cards should take care
of the text and rendering. The dimensions of these cards
therefor should not require a horizontal scrollbar
2021-10-28 16:08:51 +02:00
Ghostkeeper
2d434a02e3
Align horizontal position of label to pixels
Contributes to issue CURA-8556.
2021-10-25 16:24:49 +02:00
Ghostkeeper
f14a512718
Use ListView instead of Column
The ListView works in mostly the same way, except it loads its contents asynchronously as they come into view.

Contributes to issue CURA-8556.
2021-10-25 16:17:23 +02:00
Ghostkeeper
77d1bebbdb
Put PackageList in Marketplace namespace
This way it's not available to the rest of Cura, especially since PackageList is not such an uncommon name. It could give name collisions. Moreover, the rest of Cura doesn't need to have a list of packages from the Marketplace, so it's better separation.

Contributes to issue CURA-8556.
2021-10-25 15:35:28 +02:00
Ghostkeeper
daf450142b
Implement error handling and showing error state
If an error occurs, the error message is stored in the list model, so that it can be shown with the list.

Contributes to issue CURA-8556.
2021-10-25 01:56:57 +02:00
Ghostkeeper
bca2f36186
Use states rather than individually switching properties
This is necessary because we'll add a fourth state here: An error state. This would get quite complex otherwise.

Contributes to issue CURA-8556.
2021-10-25 01:28:37 +02:00
Ghostkeeper
1ab677f5dd
Add state for when it's loading
This has a slight bug in that the icon will immediately change to an arrow once loading has completed, but will slowly rotate back to angle 0. You don't see this, since the new plug-ins will come in between. The new plug-ins will always be a full page, or otherwise the icon disappears altogether and it's not visible anyway. But if you hold down the scrollbar while loading and quickly scroll down when loading completed, you can see this happen. I don't think anyone will really mind though.

Contributes to issue CURA-8556.
2021-10-21 18:37:02 +02:00
Ghostkeeper
e3cd5606f0
Make load more button load more packages
This adds the functionality of the button.

Contributes to issue CURA-8556.
2021-10-21 18:26:29 +02:00
Ghostkeeper
46ad1ad077
Add disabled state for load more button
Can't click on the button then.

Contributes to issue CURA-8556.
2021-10-21 18:25:33 +02:00
Ghostkeeper
35ec8f7190
Add basic layout for button to load more packages
Contributes to issue CURA-8556.
2021-10-21 18:06:52 +02:00
Ghostkeeper
1320d8c9f4
Add a simplistic design for a card for each package
It just displays the package name for now.

Contributes to issue CURA-8556.
2021-10-21 17:09:12 +02:00
Ghostkeeper
38038b3752
Store items directly in listModel when parsing them
No need to use a custom list in Python and update the ListModel from that. This is much simpler and more efficient.

Contributes to issue CURA-8556.
2021-10-21 16:10:23 +02:00
Ghostkeeper
3138452f94
Allow PackageList to be used as a model from QML
QML is leading here and holding the pointers for creation and destruction.

Contributes to issue CURA-8556.
2021-10-21 15:46:46 +02:00
Ghostkeeper
97edf59660
High-level layout of Marketplace window
Currently just a title and a page. The title is separate because in between there will be the tabs selecting which page is shown. The title will also change depending on that, but that'll have to be implemented separately. The page is loaded with a loader to make it efficient, and also to make it extensible when the tabs get implemented in a follow-up ticket.

Contributes to issue CURA-8556.
2021-10-19 16:50:57 +02:00