Commit graph

6750 commits

Author SHA1 Message Date
Ghostkeeper
4ccd4caaad
Store material profile ID received from the upload request
We'll need this later to be able to tell the server which material archive it should send to certain printers.

Contributes to issue CURA-8609.
2021-10-12 13:04:22 +02:00
Ghostkeeper
bdc269f8ab
Provide file size and an arbitrary name to the upload request
Apparently the Cloud will need to know the file size before it gets uploaded. It is used as a redundancy code to verify that it's not corrupt there.
Perhaps they should ask for a CRC instead, being more reliable against an upload containing only null bytes or whatever, but that is not up to me to decide.

Contributes to issue CURA-8609.
2021-10-12 13:00:08 +02:00
Ghostkeeper
f0d69cbef2
Add file data to PUT request
The main point of the whole request, really.

Contributes to issue CURA-8609.
2021-10-12 12:56:19 +02:00
Ghostkeeper
d5e3ed4c0e
New material API endpoint URL
This is the new URL they have settled on.

Contributes to issue CURA-8609.
2021-10-12 11:39:26 +02:00
Ghostkeeper
125c80430b
Show more information about errors we're getting
Show the error code we received in the GUI, and allow expansion for different types of errors.

Contributes to issue CURA-8609.
2021-10-12 11:30:12 +02:00
Ghostkeeper
025ef743ee
Track progress from export job
This way we can show a progress bar.

Contributes to issue CURA-8609.
2021-10-12 10:24:07 +02:00
Ghostkeeper
4661b02e4c
Move code and status related to uploading materials to separate class
There's quite a lot of status to track, errors and progress. It's better kept separate.

Contributes to issue CURA-8609.
2021-10-12 09:43:21 +02:00
Ghostkeeper
c3d392c5cf
Show upload error or success in header once completed
According to the brand new design.

Contributes to issue CURA-8609.
2021-10-11 15:27:54 +02:00
Ghostkeeper
ffd3277854
Show error if the upload failed
Contributes to issue CURA-8609.
2021-10-11 14:57:21 +02:00
Ghostkeeper
e7b49ee551
Disable sync button while in progress
Need to show a bit more feedback I think. Let's see what the design said...

Contributes to issue CURA-8609.
2021-10-11 13:11:54 +02:00
Ghostkeeper
9729f4f3d2
Set properties immediately upon constructing
Instead of afterwards. A bit more efficient.

Contributes to issue CURA-8609.
2021-10-08 17:46:10 +02:00
Ghostkeeper
2b785343b5
Implement basic uploading of material
Steps involved are:
- Create an archive of all materials.
- Request the cloud API to provide a URL to upload the archive to.
- Upload the archive to that API.

Currently the two internet requests are asynchronous, meaning that the job will 'end' before the upload is complete. Most likely the job instance will even be deleted before we get a response from the server. So this won't work, really. Need to structure that a bit differently. But I want to save this progress because it embodies the happy path well.

Contributes to issue CURA-8609.
2021-10-08 16:02:31 +02:00
Ghostkeeper
042bd46fba
Don't import CuraApplication if not type checking
Otherwise we'll get unnecessary import loops here.

Contributes to issue CURA-8609.
2021-10-08 15:59:42 +02:00
Ghostkeeper
599c59bd3a
Add a background job to upload material archives
It creates the archive now. It doesn't yet upload it.

Contributes to issue CURA-8609.
2021-10-08 15:15:57 +02:00
Ghostkeeper
07b2c1b777
Add option to only show printers that are online
I have a feeling this will be abused later. But fine. We currently need it for the list of printers that we can sync materials to via the cloud.

Contributes to issue CURA-8609.
2021-10-08 14:21:03 +02:00
Ghostkeeper
32c63c2757
Add isOnline role to GlobalStacksModel
This way we can filter for only online printers or display whether printers are online or not in the future.

Contributes to issue CURA-8609.
2021-10-08 14:09:12 +02:00
Ghostkeeper
0bf4a3d944
Store online status of printer in the printer's metadata
It's a little bit weird with the hidden global stack system when there's a cluster of various types of printers. But it should behave the same way.

Contributes to issue CURA-8609.
2021-10-08 13:49:20 +02:00
Ghostkeeper
038db1fc4f
Implement functionality of export to USB button
It now creates a similar dialogue of what the old button did. The dialogue is no longer necessary in the materials page, so I've moved it to here specifically.

Contributes to issue CURA-8609.
2021-10-06 15:20:26 +02:00
Ghostkeeper
5db964aed1
Link opening sync all window to the button that should open it
This is a new button just merged in from the Master branch. With the window implemented, we can now properly open it.

Contributes to issue CURA-8609.
2021-10-06 14:25:12 +02:00
Ghostkeeper
b98da6b538
Merge branch 'master' into CURA-8609_sync_materials_to_printer
Conflicts:
	cura/Machines/Models/MaterialManagementModel.py -> Both master and my branch added an __init__ function. I merged the two __init__s to do both things that need to be done.
2021-10-06 14:22:18 +02:00
Ghostkeeper
d16217c674
Implement filter for printer list to only show printers with certain configured connections
Because here we only want to show cloud-connected printers.

Contributes to issue CURA-8609.
2021-10-05 17:44:15 +02:00
Konstantinos Karmas
e4f6c1a440 Fix typing
CURA-8254

Co-Authored-By: Jaime van Kessel <3922611+nallath@users.noreply.github.com>
2021-10-05 14:53:38 +02:00
Konstantinos Karmas
587421f97a Make the installed_packages private
CURA-8254
2021-10-05 14:51:14 +02:00
Ghostkeeper
f2aba01eff
Reset page index to 0 when re-opening sync dialogue
When the user previously opened the dialog and advanced through the pages, but closes the window, then they'll probably have to restart when they want to try it again.

Contributes to issue CURA-8609.
2021-10-05 14:00:15 +02:00
Konstantinos Karmas
cb4d5ce6e5 Update message text
CURA-8254
2021-10-05 13:11:52 +02:00
Konstantinos Karmas
bdbac23fdf Add comment
CURA-8254
2021-10-05 11:43:36 +02:00
Konstantinos Karmas
8157cedfef Show the message only if there are printers that support material export
If none of the user's printers support exporting materials to it, then the message should not be shown.

CURA-8254
2021-10-05 11:42:00 +02:00
Konstantinos Karmas
658e54c8e5 Simplify the check for new materials
If there is at least one material, we can already show the message without checking the rest of the installed packages.

CURA-8254
2021-10-05 11:36:10 +02:00
Konstantinos Karmas
5732fc2b51 Update campaign tags
CURA-8254
2021-10-04 17:05:36 +02:00
Konstantinos Karmas
ce34e16cdd Add documentation
CURA-8254
2021-10-04 16:47:48 +02:00
Konstantinos Karmas
4b7f385077 Add external link to "Learn more" action
CURA-8254
2021-10-04 16:43:17 +02:00
Ghostkeeper
9ec731eaf6
Create MaterialsSyncDialog from a Python function
Rather than from the QML.
This allows creating this dialogue from a message button without needing to put it in the base application.

Contributes to issue CURA-8609.
2021-10-04 16:23:28 +02:00
Konstantinos Karmas
1f5672acca Check if new materials were installed on initialization
When the MaterialManagementModel is initialized, it will check whether during this startup new materials were installed. If that's the case, then it will show the prompt message to sync those materials with the printers, which should initiate the sync materials flow.

CURA-8254
2021-10-04 15:55:06 +02:00
Jaime van Kessel
6dc65a4912 Fix crash with login
Fixes CURA-2N2
2021-10-01 13:43:33 +02:00
Jaime van Kessel
c83c6b0068 Merge branch 'CURA-8510_version_upgrade' of github.com:Ultimaker/Cura 2021-09-28 10:31:56 +02:00
Jaime van Kessel
e88ac49fd6 Add global & extruder stack to ignore list for name filters
This prevents the weird spam about "global_stack" not being a plugin ID
2021-09-27 13:41:53 +02:00
Konstantinos Karmas
ad6a8d828e Merge branch 'master' into CURA-8510_version_upgrade 2021-09-23 17:01:00 +02:00
Ghostkeeper
43f1df1723
Show error when failing to save archive
It could be that you don't have permission to save the archive. Instead of crashing Cura, show an error to the user.

Fixes Sentry issue CURA-2VS.
2021-09-23 15:44:28 +02:00
Ghostkeeper
9ab41c062b
Handle encoding errors in back-up zips
Seems to happen when there's files in there with badly-encoded characters in the file names.

Fixes Sentry issue CURA-2S7.
2021-09-21 14:20:59 +02:00
Ghostkeeper
58f4d44694
Don't crash when switching to printer with fewer extruders
This seems to have happened with an UM2+C.

Fixes Sentry issue CURA-2R5.
2021-09-21 13:40:40 +02:00
Konstantinos Karmas
fe640d42cf Don't crash if a material fails to be written in the zip
This fixes Sentry issue CURA-2WS.
2021-09-21 09:33:30 +02:00
Ghostkeeper
a1ecea020c
Catch errors when backing up the preferences file
The file may not exist. In fact, that may be the whole reason why people want to restore a back-up. Try it, and give an error if it fails.

Fixes Sentry issue CURA-2QT.
2021-09-20 15:13:34 +02:00
Ghostkeeper
efcd83f82f
Merge branch 'CURA-8566_Update_filename_after_saving' 2021-09-17 15:30:52 +02:00
Ghostkeeper
0a080a1def
Increase SDK version to 7.8.0
We need to check for this new version because of the new functionality needed by the Digital Library plug-in.

Contributes to issue CURA-8566.
2021-09-17 15:15:25 +02:00
Konstantinos Karmas
3e143a012a Change the setting version to 19
Since the setting version 18 is used in the arachne beta build, we decided to make the the setting version to 19 in the normal releases, so that we make sure that projects made in arachne beta won't use any version upgrade scripts if a user attempts to open them in 4.12.

CURA-8510
2021-09-15 16:25:04 +02:00
Jaime van Kessel
11b1998156 Fix single instance
CURA-7916
Fixes #3116
2021-09-15 16:22:58 +02:00
Jaime van Kessel
c497e61d9d Merge branch 'feature_single_instance_clear_before_load' of https://github.com/fieldOfView/Cura 2021-09-15 16:18:54 +02:00
Konstantinos Karmas
6d9978e8f3 Always set the project name as the one provided by the user
There was an inconsistent behavior between saving a project file to disk (where the printer short name was readded after saving) and saving to the DigitalLibrary (where the printer short was NOT added again).

This commit fixes that by making sure that whatever the user put as the name of the file, will be the name of the project within Cura.

CURA-8566
2021-09-15 14:37:53 +02:00
Konstantinos Karmas
52c224c779 Revert "Revert "Only change project name when saving to project files.""
This reverts commit 9e2b556ce8.
2021-09-15 12:26:30 +02:00
Konstantinos Karmas
87add2c8de Revert "Revert "Use optional last output (file) name from output-dev to set project name.""
This reverts commit 24ff3692bd.
2021-09-15 12:26:18 +02:00