Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/Ultimaker/Cura.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjoeydelarago <joeydelarago@gmail.com>2022-09-02 10:22:31 +0300
committerJoey de l'Arago <joeydelarago@gmail.com>2022-09-05 11:42:48 +0300
commitee7c8d1f02d50b2291d52130f11283f07dc17e23 (patch)
tree8ba7ec2d031c40af0bd0452f31832888ad5edf32 /cura/Settings
parent42c3eb0c64e49fa96430c81c8353c8057e91d74c (diff)
Move creatFlattenedContainerInstnance into CuraStackBuilder so it can be reused.
CURA-9224
Diffstat (limited to 'cura/Settings')
-rw-r--r--cura/Settings/CuraStackBuilder.py26
1 files changed, 24 insertions, 2 deletions
diff --git a/cura/Settings/CuraStackBuilder.py b/cura/Settings/CuraStackBuilder.py
index c1aeb26151..9fd51d4563 100644
--- a/cura/Settings/CuraStackBuilder.py
+++ b/cura/Settings/CuraStackBuilder.py
@@ -1,6 +1,8 @@
-# Copyright (c) 2019 Ultimaker B.V.
+# Copyright (c) 2022 Ultimaker B.V.
# Cura is released under the terms of the LGPLv3 or higher.
+import copy
+
from typing import Optional, cast
from UM.ConfigurationErrorMessage import ConfigurationErrorMessage
@@ -297,4 +299,24 @@ class CuraStackBuilder:
stack.setMetaDataEntry("is_abstract_machine", True)
stack.setMetaDataEntry("is_online", True)
- return stack \ No newline at end of file
+ return stack
+
+ @classmethod
+ def createFlattenedContainerInstance(cls, instance_container1, instance_container2):
+ """Create a new container with container 2 as base and container 1 written over it."""
+
+ flat_container = InstanceContainer(instance_container2.getName())
+
+ # The metadata includes id, name and definition
+ flat_container.setMetaData(copy.deepcopy(instance_container2.getMetaData()))
+
+ if instance_container1.getDefinition():
+ flat_container.setDefinition(instance_container1.getDefinition().getId())
+
+ for key in instance_container2.getAllKeys():
+ flat_container.setProperty(key, "value", instance_container2.getProperty(key, "value"))
+
+ for key in instance_container1.getAllKeys():
+ flat_container.setProperty(key, "value", instance_container1.getProperty(key, "value"))
+
+ return flat_container