Browse Source

Prevent double updateNextStack during deepcopy

CURA-7106
Jaime van Kessel 4 years ago
parent
commit
1dc688dd4a
1 changed files with 4 additions and 3 deletions
  1. 4 3
      cura/Settings/SettingOverrideDecorator.py

+ 4 - 3
cura/Settings/SettingOverrideDecorator.py

@@ -35,7 +35,7 @@ class SettingOverrideDecorator(SceneNodeDecorator):
     """
     _non_thumbnail_visible_settings = {"anti_overhang_mesh", "infill_mesh", "cutting_mesh", "support_mesh"}
 
-    def __init__(self):
+    def __init__(self, *, force_update = True):
         super().__init__()
         self._stack = PerObjectContainerStack(container_id = "per_object_stack_" + str(id(self)))
         self._stack.setDirty(False)  # This stack does not need to be saved.
@@ -57,13 +57,14 @@ class SettingOverrideDecorator(SceneNodeDecorator):
 
         Application.getInstance().globalContainerStackChanged.connect(self._updateNextStack)
         self.activeExtruderChanged.connect(self._updateNextStack)
-        self._updateNextStack()
+        if force_update:
+            self._updateNextStack()
 
     def _generateUniqueName(self):
         return "SettingOverrideInstanceContainer-%s" % uuid.uuid1()
 
     def __deepcopy__(self, memo):
-        deep_copy = SettingOverrideDecorator()
+        deep_copy = SettingOverrideDecorator(force_update = False)
         """Create a fresh decorator object"""
 
         instance_container = copy.deepcopy(self._stack.getContainer(0), memo)