Commit graph

28475 commits

Author SHA1 Message Date
Ghostkeeper
e7e513bb16
Reduce width to 0 if the icon is neutral
Because with our default theme, the neutral icon is empty. This causes the alignment of the label next to it to appear off.

Contributes to issue CURA-8609.
2021-11-01 18:27:38 +01:00
Ghostkeeper
fd79b76f07
Add troubleshooting link to footer
It's moving there now. However if there are any errors syncing with the printers, the troubleshooting link has to disappear from there.

This makes the layout quite complex, since the icon on the left and the button on the right are no longer vertically centred. The text used to be vertically centred too, but can't do that any more since the text is not the determiner of the height any more, with there being a horizontally aligned button below it. It's all a bit complex now.

Contributes to issue CURA-8609.
2021-11-01 18:18:56 +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
Jaime van Kessel
cd68434611 Merge branch '4.12' of github.com:Ultimaker/Cura 2021-11-01 11:50:47 +01:00
Jaime van Kessel
67d76e3af8 Change version in citation file to 4.12 2021-11-01 11:50:24 +01:00
Remco Burema
acde6ae489
Apply suggestions from code review
Co-authored-by: Ghostkeeper <Ghostkeeper@users.noreply.github.com>
2021-10-31 21:21:24 +01:00
Jaime van Kessel
366ef4ca06 Fix undo and redo for support blocker
The translate wasn't done via an operation, so it wouldn't go back to the same
state after an undo / redo

Fixes #10648
2021-10-31 17:21:51 +01:00
Ghostkeeper
03e1fc34b4
Change page title depending on selected tab
Contributes to issue CURA-8557.
2021-10-29 15:51:41 +02:00
Ghostkeeper
73bb311293
Add dark theme entry for background of detail panels
Otherwise it uses the very bright light theme which doesn't match with the light text colour in dark mode.

Contributes to issue CURA-8556. Found during issue CURA-8557.
2021-10-29 15:47:22 +02:00
Ghostkeeper
cd286a006e
Add missing colours, fixing dark theme
Don't just use white rectangles or black text. Use the theme where appropriate. And these rectangles are just outlines.

Contributes to issue CURA-8609.
2021-10-29 15:18:40 +02:00
Ghostkeeper
ce4117a3ee
Reset export USB button when re-opening window
To do that, I moved the property to track that state to the root of the window.

Contributes to issue CURA-8609.
2021-10-29 15:12:16 +02:00
Ghostkeeper
c58d03ad4c
Change button to 'done' once USB export has completed
Also important to keep in mind: It won't change to 'done' if the user cancelled the file dialogue.

Contributes to issue CURA-8609.
2021-10-29 15:06:44 +02:00
Remco Burema
a82ffa45a0
Merge pull request #10700 from Ultimaker/CURA-8656_error_checking_for_disabled_settings
Error checking for disabled settings
2021-10-29 13:39:59 +02:00
Jaime van Kessel
e04021be37
Merge pull request #10694 from Ultimaker/CURA-8557_plugins_vs_materials
Add tabs for materials vs. plug-ins to new Marketplace
2021-10-29 11:46:36 +02:00
Jaime van Kessel
7e674a18b3 Change the logging of operationcancelled to debug instead of error
THe operation being cancelled is not an error; it's an expected action, since
it happens after the user closes the window.

CURA-8557
2021-10-29 11:34:11 +02:00
Jaime van Kessel
afe9c0c633 Change naming from plugin to packages
CURA-8557
2021-10-29 11:22:00 +02:00
Jaime van Kessel
87db24f14c Don't check validation for settings in error state
CURA-8656
2021-10-29 10:39:00 +02:00
Ghostkeeper
3e64b7cb66
Abort request when PackageList gets deleted
This is a consequence of lazy loading and the re-loading we do when the Marketplace window gets closed. This solves a crash with reproduction steps:
1. Open the Marketplace.
2. Quickly close the Marketplace.
3. Quickly re-open the Marketplace.
4. The API responds to the request made by the first opening of the Marketplace.

This crashed because when the Marketplace first opened, it made a request to the API with the HttpRequestManager. This request takes a while to respond to. If you close and re-open the Marketplace, the PackageList gets destroyed and a new one gets made. The HttpRequestManager eventually gets a response and wants to call the callback of the first PackageList, but that one got destroyed in the Qt engine so it'll throw an error saying that the object doesn't exist any more.

Contributes to issue CURA-8557.
2021-10-29 10:10:57 +02:00
Ghostkeeper
4b86f7bb29
Revert "Only show plugin and material packages"
This reverts commit cdf05a5606.
It's no longer necessary since we filter on package type now anyway.

Contributes to issue CURA-8557.
2021-10-28 21:45:58 +02: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
4191f98440
Switch pages to Materials when tab is clicked
And back to plug-ins when that tab is clicked.
Sadly, linking the content dynamically doesn't seem to work, with a custom property.

Contributes to issue CURA-8557.
2021-10-28 18:23:14 +02:00
Ghostkeeper
5f884321ea
Add design for tabs of package type selector
The width here is implementation-defined. Looks like it matches the design though. Seems like the design has 0 margins.

Contributes to issue CURA-8557.
2021-10-28 18:08:51 +02:00
Ghostkeeper
38b7f17615
Add basic tab bar to select pages
Contributes to issue CURA-8557.
2021-10-28 17:49:32 +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
27fb95aa85
Merge pull request #10685 from Ultimaker/CURA-8556_marketplace_new_design
Clear contents of net marketplace if window is closed
2021-10-28 16:12:14 +02:00
Jelle Spijker
cdf05a5606
Only show plugin and material packages
It was showing all packages available in the marketplace.
This included `cloud` DF integrations. It will now filter
on packages and plugins.

Contributes to CURA-8556
2021-10-28 16:08:51 +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
10r3n20
86875580af add dark themed images to the dark theme 2021-10-28 14:12:15 +02:00
Jaime van Kessel
6c416742fb Merge branch 'dark-theme-images' of github.com:Ultimaker/Cura 2021-10-28 14:11:20 +02:00
Jaime van Kessel
42e066a5a8 Merge branch '4.12' of github.com:Ultimaker/Cura 2021-10-28 13:54:58 +02:00
Jaime van Kessel
61c43fb765 Only show "can't find location message" when it couldn't find location
Bit of a silly mistake, but easy enough to fix!

CURA-8649
2021-10-28 13:53:52 +02:00
Jaime van Kessel
59be3e195d Use category as fallback translation for intents instead of "unkown" 2021-10-28 13:48:09 +02:00
Jaime van Kessel
8f1cf4a963 Move openSYncAllWindow to the right class
CURA-8609
2021-10-28 09:43:12 +02:00
Remco Burema
ce61f8ef60
Merge branch 'master' into bremco-graphics_buffer_update 2021-10-27 18:47:51 +02:00
Remco Burema
e3d90f16a1
Close new marketplace window when signing out or in
Because otherwise you can either see plugins you might not have the rights to, or not see plugins you do have the rights to.

part of CURA-8556
2021-10-27 17:42:00 +02:00
Jaime van Kessel
7bbc91b7a5 Clear contents of net marketplace if window is closed
CURA-8556
2021-10-27 16:11:02 +02:00
Jaime van Kessel
f47738f558
Merge pull request #10607 from Ultimaker/CURA-8609_sync_materials_to_printer
Sync materials to printers via cloud
2021-10-27 14:51:16 +02:00
Jaime van Kessel
79117d5898 Fix merge mistakes
CURA-8609
2021-10-27 14:48:12 +02:00
Ghostkeeper
88d08b27d1
Merge branch 'master' into CURA-8609_sync_materials_to_printer
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.
2021-10-27 14:21:05 +02:00
Ghostkeeper
273e933145
Reset sync status when closing and re-opening sync window
Otherwise when you want to sync again, it'll just say that you're done. Not what a user would expect, I reckon.

Contributes to issue CURA-8609.
2021-10-27 14:13:49 +02:00
Ghostkeeper
116046a8b2
Fix binding printer_id to response callbacks
With the lambda it would capture the variable of printer_id. It wouldn't actually store the value of printer_id in teh created lambda. As a result, it was using the current value of printer_id when the lambda executes, rather than the value of printer_id when the lambda is constructed. A bit weird how that works in Python's lambdas.

With partial functions it works properly.

Contributes to issue CURA-8609.
2021-10-27 14:06:04 +02:00
Ghostkeeper
f99fedc58b
Fix API misalignments with confirm material upload action
The API endpoint got renamed (without my awareness). It also needed to be a POST request, probably since the beginning. And apparently it needs everything to be in a sub-field called 'data' for some reason.

Contributes to issue CURA-8609.
2021-10-27 13:38:58 +02:00
Ghostkeeper
1c6ad019a3
Response data is contained in sub-field 'data'
The entire response is contained in a lone 'data' field in the response. Why this is necessary I don't know, because indeed everything the server can tell us is data so everything would be in a 'data' field. But that's how the API reacts so that's how we'll have to parse it.

Contributes to issue CURA-8609.
2021-10-27 13:16:39 +02:00
10r3n20
00120870e1 add dark themed images to the dark theme 2021-10-26 13:01:15 +02:00
Jaime van Kessel
b9c9b82052
Merge pull request #10662 from Sekisback/master
Fix some German translations
2021-10-25 17:41:39 +02:00
Sekisback
12c5a29d3e
Update fdmprinter.def.json.po
mistyping fixed
2021-10-25 16:51:59 +02:00
Ghostkeeper
a3c364d65a
Clarify import documentation
Contributes to issue CURA-8556.
2021-10-25 16:28:25 +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
6b6b6f613f
Remove superfluous pyqtSlot marking
This can already be set via the isLoading property. What's more, it really only ever needs to be called from Python. I just added the fset because we have the setter anyway.

Contributes to issue CURA-8556.
2021-10-25 15:43:41 +02:00