# Copyright (c) 2019 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 from UM.i18n import i18nCatalog catalog = i18nCatalog("cura") # 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_material_container.setMetaDataEntry("base_file", "empty_material") empty_material_container.setMetaDataEntry("GUID", "FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF") empty_material_container.setMetaDataEntry("material", "empty") # 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(catalog.i18nc("@info:not supported profile", "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") empty_quality_changes_container.setMetaDataEntry("intent_category", "not_supported") # Empty intent EMPTY_INTENT_CONTAINER_ID = "empty_intent" empty_intent_container = copy.deepcopy(empty_container) empty_intent_container.setMetaDataEntry("id", EMPTY_INTENT_CONTAINER_ID) empty_intent_container.setMetaDataEntry("type", "intent") empty_intent_container.setMetaDataEntry("intent_category", "default") empty_intent_container.setName(catalog.i18nc("@info:No intent profile selected", "Default")) # All empty container IDs set ALL_EMPTY_CONTAINER_ID_SET = { EMPTY_CONTAINER_ID, EMPTY_DEFINITION_CHANGES_CONTAINER_ID, EMPTY_VARIANT_CONTAINER_ID, EMPTY_MATERIAL_CONTAINER_ID, EMPTY_QUALITY_CONTAINER_ID, EMPTY_QUALITY_CHANGES_CONTAINER_ID, EMPTY_INTENT_CONTAINER_ID } # Convenience function to check if a container ID represents an empty container. def isEmptyContainer(container_id: str) -> bool: return container_id in ALL_EMPTY_CONTAINER_ID_SET __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", "ALL_EMPTY_CONTAINER_ID_SET", "isEmptyContainer", "EMPTY_INTENT_CONTAINER_ID", "empty_intent_container" ]