cura_empty_instance_containers.py 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. # Copyright (c) 2019 Ultimaker B.V.
  2. # Cura is released under the terms of the LGPLv3 or higher.
  3. import copy
  4. from UM.Settings.constant_instance_containers import EMPTY_CONTAINER_ID, empty_container
  5. from UM.i18n import i18nCatalog
  6. catalog = i18nCatalog("cura")
  7. # Empty definition changes
  8. EMPTY_DEFINITION_CHANGES_CONTAINER_ID = "empty_definition_changes"
  9. empty_definition_changes_container = copy.deepcopy(empty_container)
  10. empty_definition_changes_container.setMetaDataEntry("id", EMPTY_DEFINITION_CHANGES_CONTAINER_ID)
  11. empty_definition_changes_container.setMetaDataEntry("type", "definition_changes")
  12. # Empty variant
  13. EMPTY_VARIANT_CONTAINER_ID = "empty_variant"
  14. empty_variant_container = copy.deepcopy(empty_container)
  15. empty_variant_container.setMetaDataEntry("id", EMPTY_VARIANT_CONTAINER_ID)
  16. empty_variant_container.setMetaDataEntry("type", "variant")
  17. # Empty material
  18. EMPTY_MATERIAL_CONTAINER_ID = "empty_material"
  19. empty_material_container = copy.deepcopy(empty_container)
  20. empty_material_container.setMetaDataEntry("id", EMPTY_MATERIAL_CONTAINER_ID)
  21. empty_material_container.setMetaDataEntry("type", "material")
  22. # Empty quality
  23. EMPTY_QUALITY_CONTAINER_ID = "empty_quality"
  24. empty_quality_container = copy.deepcopy(empty_container)
  25. empty_quality_container.setMetaDataEntry("id", EMPTY_QUALITY_CONTAINER_ID)
  26. empty_quality_container.setName(catalog.i18nc("@info:not supported profile", "Not supported"))
  27. empty_quality_container.setMetaDataEntry("quality_type", "not_supported")
  28. empty_quality_container.setMetaDataEntry("type", "quality")
  29. empty_quality_container.setMetaDataEntry("supported", False)
  30. # Empty quality changes
  31. EMPTY_QUALITY_CHANGES_CONTAINER_ID = "empty_quality_changes"
  32. empty_quality_changes_container = copy.deepcopy(empty_container)
  33. empty_quality_changes_container.setMetaDataEntry("id", EMPTY_QUALITY_CHANGES_CONTAINER_ID)
  34. empty_quality_changes_container.setMetaDataEntry("type", "quality_changes")
  35. empty_quality_changes_container.setMetaDataEntry("quality_type", "not_supported")
  36. # All empty container IDs set
  37. ALL_EMPTY_CONTAINER_ID_SET = {
  38. EMPTY_CONTAINER_ID,
  39. EMPTY_DEFINITION_CHANGES_CONTAINER_ID,
  40. EMPTY_VARIANT_CONTAINER_ID,
  41. EMPTY_MATERIAL_CONTAINER_ID,
  42. EMPTY_QUALITY_CONTAINER_ID,
  43. EMPTY_QUALITY_CHANGES_CONTAINER_ID,
  44. }
  45. # Convenience function to check if a container ID represents an empty container.
  46. def isEmptyContainer(container_id: str) -> bool:
  47. return container_id in ALL_EMPTY_CONTAINER_ID_SET
  48. __all__ = ["EMPTY_CONTAINER_ID",
  49. "empty_container", # For convenience
  50. "EMPTY_DEFINITION_CHANGES_CONTAINER_ID",
  51. "empty_definition_changes_container",
  52. "EMPTY_VARIANT_CONTAINER_ID",
  53. "empty_variant_container",
  54. "EMPTY_MATERIAL_CONTAINER_ID",
  55. "empty_material_container",
  56. "EMPTY_QUALITY_CHANGES_CONTAINER_ID",
  57. "empty_quality_changes_container",
  58. "EMPTY_QUALITY_CONTAINER_ID",
  59. "empty_quality_container",
  60. "ALL_EMPTY_CONTAINER_ID_SET",
  61. "isEmptyContainer",
  62. ]