Only whenever the sentry_sdk module is there functions of this module will be used.
The only changes, which were needed to be made, are done on cura_app.py and cura.CrashHandler.
Whenever the module is not available, it's functions will be omitted.
The if-clauses could happen earlier, but this at least the bare minimum, and, to be honest, on Ultimaker's distribution it won't speed up anything.
I expect the if-clause to take the same amount of runtime sooner or later. The check is the same and it should be on Ultimaker's distribution always be "True".
Signed-off-by: Thomas Karl Pietrowski <thopiekar@gmail.com> (github: thopiekar)
Change the order of initialization, so the MachineErrorChecker already has its signals attached when the first machine gets loaded.
The increased number of 'processEvents'-calls exposed this oversight by allowing it to run out of order.
(MachineErrorChecker initializes the has-errors field to True if no check has been done yet.)
The PrintInformation test wasn't cleaning up after itself correclty. This
left some stuff behind that the other tests were using. Since this is bad (as at that point
tests can influence other tests), i've fixed that
The machine manager was leading to a crash when trying to enable
the second extruder in single-extrusion printers, because the check
for the second extruder was not correctly implemented. This commit
fixes that issue by checking if the global stack has the specified
extruder. If it does not, then the function returns while logging the
issue.
CURA-7048
When syncing to a different printer type only the global user changes
where kept, while the per-extruder user changes were not copied at all,
since the extruder list is empty before the new machine becomes active.
This commit fixes this problem by keeping a copy of the per-extruder
user changes before the new machine (of different type) is activated.
The copied user changes are then transfered to the new global stack
after the new machine is set as active.
CURA-6127