diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index c8356e5727d..0b360534f07 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -2281,8 +2281,8 @@ def appHeight(self) -> int: return 0 @pyqtSlot() - def deleteAll(self, only_selectable: bool = True) -> None: - super().deleteAll(only_selectable = only_selectable) + def deleteAll(self, only_selectable: bool = True, clear_all:bool = False) -> None: + super().deleteAll(only_selectable = only_selectable, clear_all = clear_all) # Also remove nodes with LayerData self._removeNodesWithLayerData(only_selectable = only_selectable) diff --git a/cura/Scene/ConvexHullDecorator.py b/cura/Scene/ConvexHullDecorator.py index 0dbf3ba7829..1c3f72f2bfb 100644 --- a/cura/Scene/ConvexHullDecorator.py +++ b/cura/Scene/ConvexHullDecorator.py @@ -85,6 +85,13 @@ def __deepcopy__(self, memo): return ConvexHullDecorator() + def clearDecoratorData(self): + super().clearDecoratorData() + self._global_stack = None + self._recompute_convex_hull_timer = None + self._raft_thickness = 0.0 + self.recomputeConvexHull() + def getAdhesionArea(self) -> Optional[Polygon]: """The polygon representing the 2D adhesion area. diff --git a/cura/Settings/SettingOverrideDecorator.py b/cura/Settings/SettingOverrideDecorator.py index 9d2b248ba7b..b5b7b653c27 100644 --- a/cura/Settings/SettingOverrideDecorator.py +++ b/cura/Settings/SettingOverrideDecorator.py @@ -60,6 +60,17 @@ def __init__(self, *, force_update = True): if force_update: self._updateNextStack() + def clearDecoratorData(self) -> None: + super().clearDecoratorData() + self._stack = None + self._extruder_stack = None + self._is_non_printing_mesh = False + self._is_non_thumbnail_visible_mesh = False + self._is_support_mesh = False + self._is_cutting_mesh = False + self._is_infill_mesh = False + self._is_anti_overhang_mesh = False + def _generateUniqueName(self): return "SettingOverrideInstanceContainer-%s" % uuid.uuid1()