Commit graph

6911 commits

Author SHA1 Message Date
Ghostkeeper
7091c5f3aa
Make getAuthenticationTokenUsingXYZ asynchronous
As a result, the local webserver now needs to synchronise that with a lock. Otherwise the do_GET function would no longer block, and wouldn't properly be able to return the correct redirect URL.

Contributes to issue CURA-8539.
2021-11-19 16:55:45 +01:00
Ghostkeeper
9b55ae6dda
Remove unused imports of requests
This was the objective, really.

Contributes to issue CURA-8539.
2021-11-19 16:25:50 +01:00
Ghostkeeper
acbbf83510
Deal with absence of callback function
It may be None, so then we don't need to call back. The consumer may just take it from self._user_profile.

Contributes to issue CURA-8539.
2021-11-19 16:23:48 +01:00
Ghostkeeper
a5202b61d2
Don't emit with new profile
The signal can't accept it because it's not a QObject.

Contributes to issue CURA-8539.
2021-11-19 16:22:41 +01:00
Ghostkeeper
bfb8440a04
Get user profile asynchronously when restoring from preferences
Do not stop the start-up process for it. Let the callback handle the updating if necessary.

Contributes to issue CURA-8539.
2021-11-19 16:20:00 +01:00
Ghostkeeper
92437a920d
Store account information asynchronously when completing request
And make the PyQt properties listen to the signal of completion.

Contributes to issue CURA-8539.
2021-11-19 16:02:25 +01:00
Ghostkeeper
591a2f89b8
Make getUserProfile return profile asynchronously
All via callbacks. Quite a mess.

Contributes to issue CURA-8539.
2021-11-19 15:29:29 +01:00
Ghostkeeper
6601728741
Merge branch 'feature_extruder_warning_icon' of https://github.com/fieldOfView/Cura into fieldOfView-feature_extruder_warning_icon 2021-11-19 13:48:45 +01:00
Ghostkeeper
920d9b9d44
Make _parseJWT asynchronous as well
Now it calls checkToken correctly. However now this _parseJWT is not called correctly since there are things calling this one in an attempt to be synchronous again.
There is the additional issue that we can't call getAccessTokenUsingRefreshToken synchronously now, because this runs on the main thread and it will then block the main thread until the request is made, which is never because the request is also done on the main thread via Qt's event loop.

Contributes to issue CURA-8539.
2021-11-18 17:33:39 +01:00
Ghostkeeper
aff0764c1d
Add failed callback for when the request fails
Maybe we should add a parameter to this to respond with an error message. But maybe later.

Contributes to issue CURA-8539.
2021-11-18 17:19:05 +01:00
Ghostkeeper
a9990eaa75
Make parseJWT asynchronous
This involves returning the user profile via a callback.
No longer use the Requests library, which doesn't properly use the SSL certificates locally on the computer like the QNetworkManager does.

Contributes to issue CURA-8539.
2021-11-18 17:11:27 +01:00
Ghostkeeper
d6f8984cf0
Use integer positions for fixed items too
Pynest2d requires it. It seems the SIP version we're using is lenient for this, but newer SIP versions are not.

Fixes #10801.
2021-11-18 11:44:09 +01:00
Karl Nilsson
e0e227404f
Fix picking pixel on integer indices
The QImage.pixel() function should only get integers.
In theory an input position of -2,-2 would get rounded to 0 now. However that shouldn't occur because the user can't click outside of the window. And if it does occur, it's not really a problem either that it's theoretically picking a position inside of the window when you click slightly next to it.

Fixes #10785.
2021-11-18 11:36:20 +01:00
Ghostkeeper
f1c763ad9f
Use HttpRequestManager to acquire new tokens
This is a re-write from a previous attempt. Instead of requests, which doesn't properly use SSL certificates installed on the computer among other things, we'll now use the HttpRequestManager which uses QNetworkManager under the hood and properly uses system settings.
The QNetworkManager is asynchronous which would normally be very nice, but due to the nature of this call we want to make it synchronous so we'll use a lock here.

Contributes to issue CURA-8539.
2021-11-17 14:32:53 +01:00
fieldOfView
19dbd1f168 Merge branch 'master' into feature_extruder_warning_icon 2021-11-16 14:56:43 +01:00
Jelle Spijker
cc92a9dc1c
Merge pull request #10841 from Ultimaker/master
Merge master into libArachne
2021-11-16 08:04:41 +01:00
Ghostkeeper
5e60cc6208
Merge branch 'bremco-graphics_buffer_update' 2021-11-15 15:20:10 +01:00
Ghostkeeper
b8ccb32836
Merge branch 'master' into libArachne_rebased
Conflicts:
	resources/definitions/ultimaker2.def.json -> Additions in Arachne around a place where we fixed an enum setting.
	resources/definitions/ultimaker3.def.json
	resources/definitions/ultimaker_s3.def.json
	resources/definitions/ultimaker_s5.def.json
2021-11-12 15:08:29 +01:00
Jaime van Kessel
b1f797f6cb Merge branch 'master' of github.com:Ultimaker/Cura 2021-11-09 15:10:39 +01:00
Jaime van Kessel
c1a839ccaa Also ensure that extruder settings are correct when discarding unsaved changes
CURA-8584
2021-11-09 15:10:09 +01:00
Ghostkeeper
ca942a15e8
Don't use infinite lifetimes lightly
This is very annoying if switching profiles. This is not a critical message. The message should disappear after the default amount of time.

Discovered while working on CURA-8584.
2021-11-09 14:45:40 +01:00
Jaime van Kessel
73ca50d958 Handle exception when adhesion extruder could not be found
This should be pretty rare; the crash would only happen due to a race condition

cura-8584
2021-11-09 10:17:32 +01:00
Remco Burema
4f20dc4c5d
Add documentation. 2021-11-07 22:26:34 +01:00
Remco Burema
6dff2bebb5
Merge branch 'master' into bremco-graphics_buffer_update 2021-11-07 22:12:17 +01:00
Jaime van Kessel
a613a70758 Don't disable group nodes if it's extruder is disabled
Group nodes don't really have an extruder, so exclude them from that check

CURA-7710
Fixes #8336
2021-11-05 16:31:35 +01:00
Jaime van Kessel
c7c052e51c Fix crash when profile referenced unavailable extruder
CURA-8584
2021-11-05 15:50:24 +01:00
Jaime van Kessel
ccfdfe5539 Merge branch 'CURA-8647_fix_beta_urls' of github.com:Ultimaker/Cura 2021-11-03 11:18:47 +01:00
Ghostkeeper
e929decce5
Merge branch 'speedup_inherit_button' 2021-11-02 17:59:28 +01:00
Remco Burema
112f61e32f
Fix URL's for the update checker for Beta's.
part of CURA-CURA-8647
2021-11-02 16:54:07 +01:00
Ghostkeeper
67cae04a24
Remove message explaining what caused the error
It doesn't matter to the user. Only the error message matters.

Contributes to issue CURA-8609.
2021-11-01 18:29:36 +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
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
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
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
Ghostkeeper
82441f97b1
Clarify context of error message for translators
This should improve the translation for next time.

Contributes to issue CURA-8638.
2021-10-25 15:22:28 +02:00
Jaime van Kessel
1f6e1942d7 Disable the material sync message again
CURA-8639
2021-10-21 10:39:47 +02:00
Remco Burema
8c8ec5391f
Revert settings-version to the one for Arachne-builds. 2021-10-20 11:01:13 +02:00
Remco Burema
6d93c651ec
Merge pull request #10639 from Ultimaker/CURA-8514_inconsistent_material_naming
Use the material name instead of brand + type + color
2021-10-20 10:47:32 +02:00
Remco Burema
86046a32b3
Merge branch 'master' into merge_main_20211019 2021-10-20 08:38:01 +02:00
Jaime van Kessel
2baada8a70 Use the material name instead of brand + type + color
CURA-8514
Fixes #10421
2021-10-19 11:23:21 +02:00
Jelle Spijker
666880ad20
Only show certain App Switcher icons when account has DF access
Added a dictionary where additional user rights can be set.
A plugin such as the DigitalFactory can update this dictionary
if certain account rights change. The `account.additionalRights`
is intended to allow us some flexibility, without breaking the API
in the future.

The Application Switcher now queries the additional account rights,
which is updated by the DF plugin to only show `My printers`,
`Digital Library` and `Print jobs` when the user has access to the
DF.

Contributes to CURA-8624
2021-10-18 15:37:06 +02:00