diff --git a/cura/Settings/SettingOverrideDecorator.py b/cura/Settings/SettingOverrideDecorator.py index e853a3a979..69d98314b6 100644 --- a/cura/Settings/SettingOverrideDecorator.py +++ b/cura/Settings/SettingOverrideDecorator.py @@ -2,6 +2,7 @@ # Cura is released under the terms of the LGPLv3 or higher. import copy +import uuid from UM.Scene.SceneNodeDecorator import SceneNodeDecorator from UM.Signal import Signal, signalemitter @@ -34,7 +35,7 @@ class SettingOverrideDecorator(SceneNodeDecorator): 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. - user_container = InstanceContainer(container_id = "SettingOverrideInstanceContainer") + user_container = InstanceContainer(container_id = self._generateUniqueName()) user_container.addMetaDataEntry("type", "user") self._stack.userChanges = user_container self._extruder_stack = ExtruderManager.getInstance().getExtruderStack(0).getId() @@ -49,12 +50,19 @@ class SettingOverrideDecorator(SceneNodeDecorator): self.activeExtruderChanged.connect(self._updateNextStack) self._updateNextStack() + def _generateUniqueName(self): + return "SettingOverrideInstanceContainer-%s" % uuid.uuid1() + def __deepcopy__(self, memo): ## Create a fresh decorator object deep_copy = SettingOverrideDecorator() + ## Copy the instance instance_container = copy.deepcopy(self._stack.getContainer(0), memo) + # A unique name must be added, or replaceContainer will not replace it + instance_container.setMetaDataEntry("id", self._generateUniqueName) + ## Set the copied instance as the first (and only) instance container of the stack. deep_copy._stack.replaceContainer(0, instance_container) diff --git a/plugins/UM3NetworkPrinting/ClusterUM3OutputDevice.py b/plugins/UM3NetworkPrinting/ClusterUM3OutputDevice.py index f3667fc2f3..ff942c54e1 100644 --- a/plugins/UM3NetworkPrinting/ClusterUM3OutputDevice.py +++ b/plugins/UM3NetworkPrinting/ClusterUM3OutputDevice.py @@ -247,7 +247,7 @@ class ClusterUM3OutputDevice(NetworkedPrinterOutputDevice): i18n_catalog.i18nc("@info:status", "Print job was successfully sent to the printer."), lifetime=5, dismissable=True, title=i18n_catalog.i18nc("@info:title", "Data Sent")) - self._success_message.addAction("View", i18n_catalog.i18nc("@action:button", "View in Montior"), icon=None, + self._success_message.addAction("View", i18n_catalog.i18nc("@action:button", "View in Monitor"), icon=None, description="") self._success_message.actionTriggered.connect(self._successMessageActionTriggered) self._success_message.show()