diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 908b718e1b..0d110ced54 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -104,7 +104,7 @@ from cura.Settings.ExtrudersModel import ExtrudersModel from cura.Settings.MaterialSettingsVisibilityHandler import MaterialSettingsVisibilityHandler from cura.Settings.ContainerManager import ContainerManager from cura.Settings.SidebarCustomMenuItemsModel import SidebarCustomMenuItemsModel -import cura.CuraEmptyInstanceContainers +import cura.Settings.cura_empty_instance_containers from cura.ObjectsModel import ObjectsModel @@ -368,22 +368,23 @@ class CuraApplication(QtApplication): # Add empty variant, material and quality containers. # Since they are empty, they should never be serialized and instead just programmatically created. # We need them to simplify the switching between materials. - self.empty_container = cura.CuraEmptyInstanceContainers.empty_container + self.empty_container = cura.Settings.cura_empty_instance_containers.empty_container - self._container_registry.addContainer(cura.CuraEmptyInstanceContainers.empty_definition_changes_container) - self.empty_definition_changes_container = cura.CuraEmptyInstanceContainers.empty_definition_changes_container + self._container_registry.addContainer( + cura.Settings.cura_empty_instance_containers.empty_definition_changes_container) + self.empty_definition_changes_container = cura.Settings.cura_empty_instance_containers.empty_definition_changes_container - self._container_registry.addContainer(cura.CuraEmptyInstanceContainers.empty_variant_container) - self.empty_variant_container = cura.CuraEmptyInstanceContainers.empty_variant_container + self._container_registry.addContainer(cura.Settings.cura_empty_instance_containers.empty_variant_container) + self.empty_variant_container = cura.Settings.cura_empty_instance_containers.empty_variant_container - self._container_registry.addContainer(cura.CuraEmptyInstanceContainers.empty_material_container) - self.empty_material_container = cura.CuraEmptyInstanceContainers.empty_material_container + self._container_registry.addContainer(cura.Settings.cura_empty_instance_containers.empty_material_container) + self.empty_material_container = cura.Settings.cura_empty_instance_containers.empty_material_container - self._container_registry.addContainer(cura.CuraEmptyInstanceContainers.empty_quality_container) - self.empty_quality_container = cura.CuraEmptyInstanceContainers.empty_quality_container + self._container_registry.addContainer(cura.Settings.cura_empty_instance_containers.empty_quality_container) + self.empty_quality_container = cura.Settings.cura_empty_instance_containers.empty_quality_container - self._container_registry.addContainer(cura.CuraEmptyInstanceContainers.empty_quality_changes_container) - self.empty_quality_changes_container = cura.CuraEmptyInstanceContainers.empty_quality_changes_container + self._container_registry.addContainer(cura.Settings.cura_empty_instance_containers.empty_quality_changes_container) + self.empty_quality_changes_container = cura.Settings.cura_empty_instance_containers.empty_quality_changes_container # Initializes the version upgrade manager with by providing the paths for each resource type and the latest # versions. diff --git a/cura/CuraEmptyInstanceContainers.py b/cura/CuraEmptyInstanceContainers.py deleted file mode 100644 index 3f5d3e7c59..0000000000 --- a/cura/CuraEmptyInstanceContainers.py +++ /dev/null @@ -1,29 +0,0 @@ -# Copyright (c) 2018 Ultimaker B.V. -# Cura is released under the terms of the LGPLv3 or higher. - -from UM.Settings.EmptyInstanceContainer import empty_container -import copy - -empty_definition_changes_container = copy.deepcopy(empty_container) -empty_definition_changes_container.setMetaDataEntry("id", "empty_definition_changes") -empty_definition_changes_container.setMetaDataEntry("type", "definition_changes") - -empty_variant_container = copy.deepcopy(empty_container) -empty_variant_container.setMetaDataEntry("id", "empty_variant") -empty_variant_container.setMetaDataEntry("type", "variant") - -empty_material_container = copy.deepcopy(empty_container) -empty_material_container.setMetaDataEntry("id", "empty_material") -empty_material_container.setMetaDataEntry("type", "material") - -empty_quality_container = copy.deepcopy(empty_container) -empty_quality_container.setMetaDataEntry("id", "empty_quality") -empty_quality_container.setName("Not Supported") -empty_quality_container.setMetaDataEntry("quality_type", "not_supported") -empty_quality_container.setMetaDataEntry("type", "quality") -empty_quality_container.setMetaDataEntry("supported", False) - -empty_quality_changes_container = copy.deepcopy(empty_container) -empty_quality_changes_container.setMetaDataEntry("id", "empty_quality_changes") -empty_quality_changes_container.setMetaDataEntry("type", "quality_changes") -empty_quality_changes_container.setMetaDataEntry("quality_type", "not_supported") diff --git a/cura/Settings/CuraContainerStack.py b/cura/Settings/CuraContainerStack.py index dabed97011..c8d1d9e370 100755 --- a/cura/Settings/CuraContainerStack.py +++ b/cura/Settings/CuraContainerStack.py @@ -13,8 +13,7 @@ from UM.Settings.InstanceContainer import InstanceContainer from UM.Settings.DefinitionContainer import DefinitionContainer from UM.Settings.ContainerRegistry import ContainerRegistry from UM.Settings.Interfaces import ContainerInterface, DefinitionContainerInterface -from UM.Settings.EmptyInstanceContainer import empty_container -from cura import CuraEmptyInstanceContainers +from cura.Settings import cura_empty_instance_containers from . import Exceptions @@ -41,12 +40,12 @@ class CuraContainerStack(ContainerStack): def __init__(self, container_id: str) -> None: super().__init__(container_id) - self._empty_instance_container = empty_container #type: InstanceContainer + self._empty_instance_container = cura_empty_instance_containers.empty_container #type: InstanceContainer - self._empty_quality_changes = CuraEmptyInstanceContainers.empty_quality_changes_container #type: InstanceContainer - self._empty_quality = CuraEmptyInstanceContainers.empty_quality_container #type: InstanceContainer - self._empty_material = CuraEmptyInstanceContainers.empty_material_container #type: InstanceContainer - self._empty_variant = CuraEmptyInstanceContainers.empty_variant_container #type: InstanceContainer + self._empty_quality_changes = cura_empty_instance_containers.empty_quality_changes_container #type: InstanceContainer + self._empty_quality = cura_empty_instance_containers.empty_quality_container #type: InstanceContainer + self._empty_material = cura_empty_instance_containers.empty_material_container #type: InstanceContainer + self._empty_variant = cura_empty_instance_containers.empty_variant_container #type: InstanceContainer self._containers = [self._empty_instance_container for i in range(len(_ContainerIndexes.IndexTypeMap))] #type: List[ContainerInterface] self._containers[_ContainerIndexes.QualityChanges] = self._empty_quality_changes diff --git a/cura/Settings/cura_empty_instance_containers.py b/cura/Settings/cura_empty_instance_containers.py new file mode 100644 index 0000000000..d76407ed79 --- /dev/null +++ b/cura/Settings/cura_empty_instance_containers.py @@ -0,0 +1,56 @@ +# Copyright (c) 2018 Ultimaker B.V. +# Cura is released under the terms of the LGPLv3 or higher. + +import copy + +from UM.Settings.constant_instance_containers import EMPTY_CONTAINER_ID, empty_container + + +# Empty definition changes +EMPTY_DEFINITION_CHANGES_CONTAINER_ID = "empty_definition_changes" +empty_definition_changes_container = copy.deepcopy(empty_container) +empty_definition_changes_container.setMetaDataEntry("id", EMPTY_DEFINITION_CHANGES_CONTAINER_ID) +empty_definition_changes_container.setMetaDataEntry("type", "definition_changes") + +# Empty variant +EMPTY_VARIANT_CONTAINER_ID = "empty_variant" +empty_variant_container = copy.deepcopy(empty_container) +empty_variant_container.setMetaDataEntry("id", EMPTY_VARIANT_CONTAINER_ID) +empty_variant_container.setMetaDataEntry("type", "variant") + +# Empty material +EMPTY_MATERIAL_CONTAINER_ID = "empty_material" +empty_material_container = copy.deepcopy(empty_container) +empty_material_container.setMetaDataEntry("id", EMPTY_MATERIAL_CONTAINER_ID) +empty_material_container.setMetaDataEntry("type", "material") + +# Empty quality +EMPTY_QUALITY_CONTAINER_ID = "empty_quality" +empty_quality_container = copy.deepcopy(empty_container) +empty_quality_container.setMetaDataEntry("id", EMPTY_QUALITY_CONTAINER_ID) +empty_quality_container.setName("Not Supported") +empty_quality_container.setMetaDataEntry("quality_type", "not_supported") +empty_quality_container.setMetaDataEntry("type", "quality") +empty_quality_container.setMetaDataEntry("supported", False) + +# Empty quality changes +EMPTY_QUALITY_CHANGES_CONTAINER_ID = "empty_quality_changes" +empty_quality_changes_container = copy.deepcopy(empty_container) +empty_quality_changes_container.setMetaDataEntry("id", EMPTY_QUALITY_CHANGES_CONTAINER_ID) +empty_quality_changes_container.setMetaDataEntry("type", "quality_changes") +empty_quality_changes_container.setMetaDataEntry("quality_type", "not_supported") + + +__all__ = ["EMPTY_CONTAINER_ID", + "empty_container", # For convenience + "EMPTY_DEFINITION_CHANGES_CONTAINER_ID", + "empty_definition_changes_container", + "EMPTY_VARIANT_CONTAINER_ID", + "empty_variant_container", + "EMPTY_MATERIAL_CONTAINER_ID", + "empty_material_container", + "EMPTY_QUALITY_CHANGES_CONTAINER_ID", + "empty_quality_changes_container", + "EMPTY_QUALITY_CONTAINER_ID", + "empty_quality_container" + ] diff --git a/tests/Settings/TestExtruderStack.py b/tests/Settings/TestExtruderStack.py index b2fa171068..df2e1075d1 100644 --- a/tests/Settings/TestExtruderStack.py +++ b/tests/Settings/TestExtruderStack.py @@ -9,9 +9,9 @@ import UM.Settings.ContainerRegistry #To create empty instance containers. import UM.Settings.ContainerStack #To set the container registry the container stacks use. from UM.Settings.DefinitionContainer import DefinitionContainer #To check against the class of DefinitionContainer. from UM.Settings.InstanceContainer import InstanceContainer #To check against the class of InstanceContainer. -from UM.Settings.EmptyInstanceContainer import empty_container from cura.Settings.Exceptions import InvalidContainerError, InvalidOperationError #To check whether the correct exceptions are raised. from cura.Settings.ExtruderManager import ExtruderManager +from cura.Settings.cura_empty_instance_containers import empty_container ## Gets an instance container with a specified container type. # diff --git a/tests/Settings/TestGlobalStack.py b/tests/Settings/TestGlobalStack.py index 7aba53c4e5..f8052aa4bb 100755 --- a/tests/Settings/TestGlobalStack.py +++ b/tests/Settings/TestGlobalStack.py @@ -9,11 +9,12 @@ from cura.Settings.Exceptions import InvalidContainerError, InvalidOperationErro from UM.Settings.DefinitionContainer import DefinitionContainer #To test against the class DefinitionContainer. from UM.Settings.InstanceContainer import InstanceContainer #To test against the class InstanceContainer. from UM.Settings.SettingInstance import InstanceState -from UM.Settings.EmptyInstanceContainer import empty_container import UM.Settings.ContainerRegistry import UM.Settings.ContainerStack import UM.Settings.SettingDefinition #To add settings to the definition. +from cura.Settings.cura_empty_instance_containers import empty_container + ## Gets an instance container with a specified container type. # # \param container_type The type metadata for the instance container.