A block of code is run after dialog.show() and most of the dialog assignment. This is because dialog.show() resets the _result dictionary, we want to update the values in _result afterwards.
CURA-9424
This was because the metadata "is_abstract_machine" was being loaded into the non abstract machine. This caused a crash in MachineListModel.py by trying to delete this non abstract machine from a list where it didn't exist.
The solution is to ignore the "is_abstract_machine" metadata when loading settings from saved machines in 3mf files.
CURA-9711
Let's put it in the Cura directory with the rest of such files, as to not muddy the 3MF file with all sorts of directories that are not known to other consumers.
Contributes to issue CURA-9413.
Conflicts:
plugins/SimulationView/SimulationPass.py -> Reverted layer view optimisation in Master while some whitespace changed in Arachne.
resources/definitions -> Bunch of conflicts with profile updates.
resources/quality -> Bunch of conflicts with profile updates.
resources/texts/change_log.txt -> Removed the Arachne change log (as they are internal versions). It'll have to be re-added when we release this version as stable.
We encountered a case where the version upgrade changed the quality profile to a new one which was specific to the printer rather than a global profile. As the upgraded stack was being read from the project file, it would go look for the new quality profile in the workspace. That ID wouldn't be present in there, and so it would crash and pretend the project file is plain 3MF.
This change makes it fallback to the built-in profiles, for precisely such cases as when a version upgrade changes the stack.
Contributes to issue CURA-8212.
This reverts commit 28f4d8513db7efce17bfd8b80fa7c8b237fd1c18.
The original revert was to revert an accidental merge from master to 4.7. This now reverts the revert on Master, so that we still have those changes on Master.
The issue will happen only if the machine_extruder_count is a formula.
In this case, the project loading will not work properly if "Create new" printer is selected,
as the settings of all extruders but the first one will not be applied.
Workaround in this case will be to load the project again and select to update the existing
printer, in which case all settings will load properly.
CURA-7646
If it failed to create a global stack, the extruder_stack_dict variable would not be defined, and Cura crashes. It may fail to create a stack because of an indexerror in a malformed project file.
Fixes Sentry issue CURA-137.
With the caveat that the qtQuickControls had to be updated to 2.3, due to a qt bug in 1.x that did
not update the dropdown popup list according to the ListModel.
This leads to a different look in the dropdowns and in the buttons of the open project dialog,
compaired to the rest of the application.
CURA-7609