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.
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.
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.
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.
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.
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.
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.
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.
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
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.
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
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