diff options
author | joeydelarago <joeydelarago@gmail.com> | 2022-09-02 10:22:31 +0300 |
---|---|---|
committer | Joey de l'Arago <joeydelarago@gmail.com> | 2022-09-05 11:42:48 +0300 |
commit | ee7c8d1f02d50b2291d52130f11283f07dc17e23 (patch) | |
tree | 8ba7ec2d031c40af0bd0452f31832888ad5edf32 /cura/Settings/CuraStackBuilder.py | |
parent | 42c3eb0c64e49fa96430c81c8353c8057e91d74c (diff) |
Move creatFlattenedContainerInstnance into CuraStackBuilder so it can be reused.
CURA-9224
Diffstat (limited to 'cura/Settings/CuraStackBuilder.py')
-rw-r--r-- | cura/Settings/CuraStackBuilder.py | 26 |
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 |