Exemplo n.º 1
0
    def __init__(self):
        super().__init__(add_to_recent_files=False)

        MimeTypeDatabase.addMimeType(
            MimeType(name="application/x-ufp",
                     comment="Ultimaker Format Package",
                     suffixes=["ufp"]))
Exemplo n.º 2
0
 def __init__(self) -> None:
     super().__init__()
     MimeTypeDatabase.addMimeType(
         MimeType(name="application/x-cura-compressed-gcode-file",
                  comment="Cura Compressed GCode File",
                  suffixes=["gcode.gz"]))
     self._supported_extensions = [".gcode.gz"]
Exemplo n.º 3
0
 def __init__(self):
     super().__init__(add_to_recent_files=False)
     self._snapshot = None
     MimeTypeDatabase.addMimeType(
         MimeType(name="text/chitu-g-code",
                  comment="chitu additionals",
                  suffixes=["gcode"]))
Exemplo n.º 4
0
 def __init__(self):
     super().__init__()
     MimeTypeDatabase.addMimeType(
         MimeType(name="application/x-ste-cli-file",
                  comment="STE Slicer Cli file",
                  suffixes=["cli"]))
     self._supported_extensions = [".cli"]
Exemplo n.º 5
0
    def setUp(self):

        self._application = MagicMock()
        self._container_registry = MagicMock()
        self._machine_manager = MagicMock()

        self._mocked_mime = MagicMock()
        self._mocked_mime.preferredSuffix = "omg"
        self._mocked_mime.suffixes = ["omg"]
        self._mocked_mime.comment = "UnitTest!"

        self._mocked_container = MagicMock()
        self._mocked_container_data = "SOME DATA :D"
        self._mocked_container.serialize = MagicMock(return_value = self._mocked_container_data)

        self._containers_meta_data = [{"id": "test", "test_data": "omg"}]
        self._container_registry.findContainersMetadata = MagicMock(return_value = self._containers_meta_data)
        self._container_registry.getMimeTypeForContainer = MagicMock(return_value = self._mocked_mime)
        self._container_registry.findContainers = MagicMock(return_value = [self._mocked_container])
        self._application.getContainerRegistry = MagicMock(return_value = self._container_registry)
        self._application.getMachineManager = MagicMock(return_value = self._machine_manager)

        # Destroy the previous instance of the container manager
        if ContainerManager.getInstance() is not None:
            ContainerManager._ContainerManager__instance = None

        self._container_manager = ContainerManager(self._application)
        MimeTypeDatabase.addMimeType(self._mocked_mime)
    def setUp(self):

        self._application = MagicMock()
        self._container_registry = MagicMock()
        self._machine_manager = MagicMock()

        self._mocked_mime = MagicMock()
        self._mocked_mime.preferredSuffix = "omg"
        self._mocked_mime.suffixes = ["omg"]
        self._mocked_mime.comment = "UnitTest!"

        self._mocked_container = MagicMock()
        self._mocked_container_data = "SOME DATA :D"
        self._mocked_container.serialize = MagicMock(
            return_value=self._mocked_container_data)

        self._containers_meta_data = [{"id": "test", "test_data": "omg"}]
        self._container_registry.findContainersMetadata = MagicMock(
            return_value=self._containers_meta_data)
        self._container_registry.getMimeTypeForContainer = MagicMock(
            return_value=self._mocked_mime)
        self._container_registry.findContainers = MagicMock(
            return_value=[self._mocked_container])
        self._application.getContainerRegistry = MagicMock(
            return_value=self._container_registry)
        self._application.getMachineManager = MagicMock(
            return_value=self._machine_manager)

        # Destroy the previous instance of the container manager
        if ContainerManager.getInstance() is not None:
            ContainerManager._ContainerManager__instance = None

        self._container_manager = ContainerManager(self._application)
        MimeTypeDatabase.addMimeType(self._mocked_mime)
Exemplo n.º 7
0
    def __init__(self) -> None:
        super().__init__()

        MimeTypeDatabase.addMimeType(
            MimeType(name="model/stl",
                     comment="Uranium STL File",
                     suffixes=["stl"]))
        self._supported_extensions = [".stl"]
Exemplo n.º 8
0
    def __init__(self) -> None:
        super().__init__()

        MimeTypeDatabase.addMimeType(
            MimeType(name="application/x-ufp",
                     comment="Ultimaker Format Package",
                     suffixes=["ufp"]))
        self._supported_extensions = [".ufp"]
Exemplo n.º 9
0
def register(app):
    mime_type = MimeType(
        name = "application/x-ultimaker-material-profile",
        comment = "Ultimaker Material Profile",
        suffixes = [ "xml.fdm_material" ]
    )
    MimeTypeDatabase.addMimeType(mime_type)
    return { "settings_container": XmlMaterialProfile.XmlMaterialProfile("default_xml_material_profile") }
Exemplo n.º 10
0
    def __init__(self) -> None:
        super().__init__()
        self._supported_extensions = [".amf"]
        self._namespaces = {}  # type: Dict[str, str]

        MimeTypeDatabase.addMimeType(
            MimeType(name="application/x-amf", comment="AMF",
                     suffixes=["amf"]))
Exemplo n.º 11
0
    def __init__(self):
        super().__init__(add_to_recent_files=False)

        MimeTypeDatabase.addMimeType(
            MimeType(name="application/x-ufp",
                     comment="Cura UFP File",
                     suffixes=["ufp"]))

        self._snapshot = None
Exemplo n.º 12
0
def register(app):
    mime_type = MimeType(name="application/x-ultimaker-material-profile",
                         comment="Ultimaker Material Profile",
                         suffixes=["xml.fdm_material"])
    MimeTypeDatabase.addMimeType(mime_type)
    return {
        "settings_container":
        XmlMaterialProfile.XmlMaterialProfile("default_xml_material_profile")
    }
 def __init__(self):
     super().__init__(add_to_recent_files=False)
     self._snapshot = None
     MimeTypeDatabase.addMimeType(
         MimeType(
             name="application/gx",
             comment="GX (xgcode)",
             suffixes=["gx"],
         ))
Exemplo n.º 14
0
 def __init__(self) -> None:
     super().__init__()
     MimeTypeDatabase.addMimeType(
         MimeType(
             name = "application/x-cura-compressed-gcode-file",
             comment = "Cura Compressed GCode File",
             suffixes = ["gcode.gz"]
         )
     )
     self._supported_extensions = [".gcode.gz"]
Exemplo n.º 15
0
def setup_module():
    MimeTypeDatabase.addMimeType(
        MimeType(name="application/vnd.ms-package.3dmanufacturing-3dmodel+xml",
                 comment="3MF",
                 suffixes=["3mf"]))

    MimeTypeDatabase.addMimeType(
        MimeType(name="application/x-cura-gcode-file",
                 comment="Cura G-code File",
                 suffixes=["gcode"]))
Exemplo n.º 16
0
    def __init__(self) -> None:
        super().__init__()

        MimeTypeDatabase.addMimeType(
            MimeType(
                name = "application/x-ufp",
                comment = "Ultimaker Format Package",
                suffixes = ["ufp"]
            )
        )
        self._supported_extensions = [".ufp"]
Exemplo n.º 17
0
    def __init__(self):
        super().__init__(add_to_recent_files=False)

        MimeTypeDatabase.addMimeType(
            MimeType(name="application/x-cura-stl-file",
                     comment="Cura UFP File",
                     suffixes=["ufp"]))

        self._snapshot = None
        Application.getInstance().getOutputDeviceManager(
        ).writeStarted.connect(self._createSnapshot)
Exemplo n.º 18
0
    def __init__(self) -> None:
        super().__init__()

        MimeTypeDatabase.addMimeType(
            MimeType(
                name = "model/stl",
                comment = "Uranium STL File",
                suffixes = ["stl"]
            )
        )
        self._supported_extensions = [".stl"]
Exemplo n.º 19
0
    def __init__(self) -> None:
        super().__init__()
        MimeTypeDatabase.addMimeType(
            MimeType(name="application/x-cura-gcode-file",
                     comment="Cura GCode File",
                     suffixes=["gcode"]))
        self._supported_extensions = [".gcode", ".g"]

        self._flavor_reader = None

        Application.getInstance().getPreferences().addPreference(
            "gcodereader/show_caution", True)
Exemplo n.º 20
0
    def __init__(self):
        super().__init__(add_to_recent_files = False)

        MimeTypeDatabase.addMimeType(
            MimeType(
                name = "application/x-ufp",
                comment = "Ultimaker Format Package",
                suffixes = ["ufp"]
            )
        )

        self._snapshot = None
Exemplo n.º 21
0
    def __init__(self) -> None:
        super().__init__()
        self._supported_extensions = [".amf"]
        self._namespaces = {}   # type: Dict[str, str]

        MimeTypeDatabase.addMimeType(
            MimeType(
                name="application/x-amf",
                comment="AMF",
                suffixes=["amf"]
            )
        )
Exemplo n.º 22
0
    def __init__(self):
        super().__init__("OpenSCAD")

        if Version("3.4") <= Version(Application.getInstance().getVersion()):
            MimeTypeDatabase.addMimeType(MimeType(name = "application/x-extension-scad",
                                                  comment="OpenSCAD files",
                                                  suffixes=["scad"]
                                                  )
                                         )

        self._supported_extensions = [".scad".lower(),
                                      ]
        self.scanForAllPaths()
Exemplo n.º 23
0
    def __init__(self) -> None:
        super().__init__()

        MimeTypeDatabase.addMimeType(
            MimeType(
                name="application/vnd.ms-package.3dmanufacturing-3dmodel+xml",
                comment="3MF",
                suffixes=["3mf"]))

        self._supported_extensions = [".3mf"]
        self._root = None
        self._base_name = ""
        self._unit = None
Exemplo n.º 24
0
    def __init__(self) -> None:
        super().__init__()
        MimeTypeDatabase.addMimeType(
            MimeType(
                name = "application/x-cura-gcode-file",
                comment = "Cura GCode File",
                suffixes = ["gcode"]
            )
        )
        self._supported_extensions = [".gcode", ".g"]

        self._flavor_reader = None

        Application.getInstance().getPreferences().addPreference("gcodereader/show_caution", True)
Exemplo n.º 25
0
    def __init__(self):
        super().__init__()

        if Version("3.4") <= Version(Application.getInstance().getVersion()):
            MimeTypeDatabase.addMimeType(MimeType(name="application/x-extension-blend",
                                                  comment="Blender files",
                                                  suffixes=["BLEND"]
                                                  )
                                         )

        self._supported_extensions = [".BLEND".lower(),
                                      ]

        self.findPathsForAllExtensions()
Exemplo n.º 26
0
def mime_database():
    MimeTypeDatabase._MimeTypeDatabase__custom_mimetypes = []
    mime = MimeType(
        name = "application/x-test",
        comment = "Test Mimetype",
        suffixes = [ "test" ]
    )
    MimeTypeDatabase.addMimeType(mime)
    mime = MimeType(
        name = "application/x-long-test",
        comment = "Long Test Mimetype",
        suffixes = [ "long.test" ]
    )
    MimeTypeDatabase.addMimeType(mime)
    mime = MimeType(
        name = "application/x-multiple-test",
        comment = "Multiple Extension MIME Type",
        suffixes = [ "tost", "ost" ],
        preferred_suffix = "ost"
    )
    MimeTypeDatabase.addMimeType(mime)
    mime = MimeType(
        name = "image/jpeg",
        comment = "Custom JPEG MIME Type",
        suffixes = [ "jpg", "jpeg" ],
        preferred_suffix = "jpg"
    )
    MimeTypeDatabase.addMimeType(mime)

    return MimeTypeDatabase
Exemplo n.º 27
0
    def __init__(self):
        super().__init__()

        MimeTypeDatabase.addMimeType(
            MimeType(
                name="application/vnd.ms-package.3dmanufacturing-3dmodel+xml",
                comment="3MF",
                suffixes=["3mf"]))

        self._supported_extensions = [".3mf"]
        self._root = None
        self._base_name = ""
        self._unit = None
        self._object_count = 0  # Used to name objects as there is no node name yet.
Exemplo n.º 28
0
def mime_database():
    MimeTypeDatabase._MimeTypeDatabase__custom_mimetypes = []
    mime = MimeType(
        name = "application/x-test",
        comment = "Test Mimetype",
        suffixes = [ "test" ]
    )
    MimeTypeDatabase.addMimeType(mime)
    mime = MimeType(
        name = "application/x-long-test",
        comment = "Long Test Mimetype",
        suffixes = [ "long.test" ]
    )
    MimeTypeDatabase.addMimeType(mime)
    mime = MimeType(
        name = "application/x-multiple-test",
        comment = "Multiple Extension MIME Type",
        suffixes = [ "tost", "ost" ],
        preferred_suffix = "ost"
    )
    MimeTypeDatabase.addMimeType(mime)
    mime = MimeType(
        name = "image/jpeg",
        comment = "Custom JPEG MIME Type",
        suffixes = [ "jpg", "jpeg" ],
        preferred_suffix = "jpg"
    )
    MimeTypeDatabase.addMimeType(mime)

    return MimeTypeDatabase
Exemplo n.º 29
0
    def __init__(self) -> None:
        super().__init__()

        MimeTypeDatabase.addMimeType(
            MimeType(
                name = "application/vnd.ms-package.3dmanufacturing-3dmodel+xml",
                comment="3MF",
                suffixes=["3mf"]
            )
        )

        self._supported_extensions = [".3mf"]
        self._root = None
        self._base_name = ""
        self._unit = None
        self._object_count = 0  # Used to name objects as there is no node name yet.
Exemplo n.º 30
0
def setup_module():
     MimeTypeDatabase.addMimeType(
        MimeType(
            name = "application/vnd.ms-package.3dmanufacturing-3dmodel+xml",
            comment = "3MF",
            suffixes = ["3mf"]
        )
     )

     MimeTypeDatabase.addMimeType(
         MimeType(
             name = "application/x-cura-gcode-file",
             comment = "Cura GCode File",
             suffixes = ["gcode"]
         )
     )
Exemplo n.º 31
0
def register(app):
    # add Mime type
    mime_type = MimeType(
        name = "application/x-ultimaker-material-profile",
        comment = "Ultimaker Material Profile",
        suffixes = [ "xml.fdm_material" ]
    )
    MimeTypeDatabase.addMimeType(mime_type)

    # add upgrade version
    from cura.CuraApplication import CuraApplication
    from UM.VersionUpgradeManager import VersionUpgradeManager
    VersionUpgradeManager.getInstance().registerCurrentVersion(
        ("materials", XmlMaterialProfile.XmlMaterialProfile.Version * 1000000 + CuraApplication.SettingVersion),
        (CuraApplication.ResourceTypes.MaterialInstanceContainer, "application/x-ultimaker-material-profile")
    )

    return {"version_upgrade": upgrader,
            "settings_container": XmlMaterialProfile.XmlMaterialProfile("default_xml_material_profile"),
            }
Exemplo n.º 32
0
def register(app):
    # add Mime type
    mime_type = MimeType(
        name = "application/x-ultimaker-material-profile",
        comment = "Ultimaker Material Profile",
        suffixes = [ "xml.fdm_material" ]
    )
    MimeTypeDatabase.addMimeType(mime_type)

    # add upgrade version
    from cura.CuraApplication import CuraApplication
    from UM.VersionUpgradeManager import VersionUpgradeManager
    VersionUpgradeManager.getInstance().registerCurrentVersion(
        ("materials", XmlMaterialProfile.XmlMaterialProfile.Version * 1000000 + CuraApplication.SettingVersion),
        (CuraApplication.ResourceTypes.MaterialInstanceContainer, "application/x-ultimaker-material-profile")
    )

    return {"version_upgrade": upgrader,
            "settings_container": XmlMaterialProfile.XmlMaterialProfile("default_xml_material_profile"),
            }
Exemplo n.º 33
0
def container_registry(application):
    MimeTypeDatabase.addMimeType(
        MimeType(
            name = "application/x-uranium-definitioncontainer",
            comment = "Uranium Definition Container",
            suffixes = ["def.json"]
        )
    )

    MimeTypeDatabase.addMimeType(
        MimeType(
            name = "application/x-uranium-instancecontainer",
            comment = "Uranium Instance Container",
            suffixes = [ "inst.cfg" ]
        )
    )

    MimeTypeDatabase.addMimeType(
        MimeType(
            name = "application/x-uranium-containerstack",
            comment = "Uranium Container Stack",
            suffixes = [ "stack.cfg" ]
        )
    )

    Resources.addSearchPath(os.path.dirname(os.path.abspath(__file__)))
    ContainerRegistry._ContainerRegistry__instance = None # Reset the private instance variable every time

    ContainerRegistry.setApplication(application)

    UM.Settings.ContainerStack.setContainerRegistry(ContainerRegistry.getInstance())
    UM.Settings.InstanceContainer.setContainerRegistry(ContainerRegistry.getInstance())
    return ContainerRegistry.getInstance()
Exemplo n.º 34
0
def container_registry(application):
    MimeTypeDatabase.addMimeType(
        MimeType(
            name = "application/x-uranium-definitioncontainer",
            comment = "Uranium Definition Container",
            suffixes = ["def.json"]
        )
    )

    MimeTypeDatabase.addMimeType(
        MimeType(
            name = "application/x-uranium-instancecontainer",
            comment = "Uranium Instance Container",
            suffixes = [ "inst.cfg" ]
        )
    )

    MimeTypeDatabase.addMimeType(
        MimeType(
            name = "application/x-uranium-containerstack",
            comment = "Uranium Container Stack",
            suffixes = [ "stack.cfg" ]
        )
    )

    UM.Resources.addSearchPath(os.path.realpath(os.path.join(os.path.dirname(__file__), "..", "..", "Settings")))
    UM.Settings.ContainerRegistry._ContainerRegistry__instance = None # Reset the private instance variable every time
    UM.PluginRegistry.getInstance().removeType("settings_container")

    UM.Settings.ContainerRegistry.ContainerRegistry.getInstance().load()

    return UM.Settings.ContainerRegistry.ContainerRegistry.getInstance()
Exemplo n.º 35
0
def container_registry(application, test_containers_provider, plugin_registry: PluginRegistry):
    MimeTypeDatabase.addMimeType(
        MimeType(
            name = "application/x-uranium-definitioncontainer",
            comment = "Uranium Definition Container",
            suffixes = ["def.json"]
        )
    )

    MimeTypeDatabase.addMimeType(
        MimeType(
            name = "application/x-uranium-instancecontainer",
            comment = "Uranium Instance Container",
            suffixes = [ "inst.cfg" ]
        )
    )

    MimeTypeDatabase.addMimeType(
        MimeType(
            name = "application/x-uranium-containerstack",
            comment = "Uranium Container Stack",
            suffixes = [ "stack.cfg" ]
        )
    )

    ContainerRegistry._ContainerRegistry__instance = None # Reset the private instance variable every time
    registry = ContainerRegistry(application)

    #We need to mock the "priority" plug-in metadata field, but preferably without mocking an entire plug-in.
    with unittest.mock.patch("UM.PluginRegistry.PluginRegistry.getMetaData", unittest.mock.MagicMock(return_value = {"container_provider": {}})):
        registry.addProvider(test_containers_provider)

    UM.Settings.ContainerStack.setContainerRegistry(registry)
    UM.Settings.InstanceContainer.setContainerRegistry(registry)
    return registry
Exemplo n.º 36
0
def container_registry(application, test_containers_provider,
                       plugin_registry: PluginRegistry):
    MimeTypeDatabase.addMimeType(
        MimeType(name="application/x-uranium-definitioncontainer",
                 comment="Uranium Definition Container",
                 suffixes=["def.json"]))

    MimeTypeDatabase.addMimeType(
        MimeType(name="application/x-uranium-instancecontainer",
                 comment="Uranium Instance Container",
                 suffixes=["inst.cfg"]))

    MimeTypeDatabase.addMimeType(
        MimeType(name="application/x-uranium-containerstack",
                 comment="Uranium Container Stack",
                 suffixes=["stack.cfg"]))

    ContainerRegistry._ContainerRegistry__instance = None  # Reset the private instance variable every time
    registry = ContainerRegistry(application)

    #We need to mock the "priority" plug-in metadata field, but preferably without mocking an entire plug-in.
    with unittest.mock.patch(
            "UM.PluginRegistry.PluginRegistry.getMetaData",
            unittest.mock.MagicMock(return_value={"container_provider": {}})):
        registry.addProvider(test_containers_provider)

    UM.Settings.ContainerStack.setContainerRegistry(registry)
    UM.Settings.InstanceContainer.setContainerRegistry(registry)
    return registry
Exemplo n.º 37
0
def container_registry(application):
    MimeTypeDatabase.addMimeType(
        MimeType(
            name = "application/x-uranium-definitioncontainer",
            comment = "Uranium Definition Container",
            suffixes = ["def.json"]
        )
    )

    MimeTypeDatabase.addMimeType(
        MimeType(
            name = "application/x-uranium-instancecontainer",
            comment = "Uranium Instance Container",
            suffixes = [ "inst.cfg" ]
        )
    )

    MimeTypeDatabase.addMimeType(
        MimeType(
            name = "application/x-uranium-containerstack",
            comment = "Uranium Container Stack",
            suffixes = [ "stack.cfg" ]
        )
    )

    Resources.addSearchPath(os.path.realpath(os.path.join(os.path.dirname(__file__), "..", "..", "Settings")))
    ContainerRegistry._ContainerRegistry__instance = None # Reset the private instance variable every time
    PluginRegistry.getInstance().removeType("settings_container")

    ContainerRegistry.getInstance().load()

    return ContainerRegistry.getInstance()
Exemplo n.º 38
0
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

        mime = MimeType(
            name = "application/x-uranium-definitioncontainer",
            comment = "Uranium Definition Container",
            suffixes = [ "def.json" ]
        )
        MimeTypeDatabase.addMimeType(mime)
        mime = MimeType(
            name = "application/x-uranium-instancecontainer",
            comment = "Uranium Instance Container",
            suffixes = [ "inst.cfg" ]
        )
        MimeTypeDatabase.addMimeType(mime)
        mime = MimeType(
            name = "application/x-uranium-containerstack",
            comment = "Uranium Container Stack",
            suffixes = [ "stack.cfg" ]
        )
        MimeTypeDatabase.addMimeType(mime)

        self._emptyInstanceContainer = _EmptyInstanceContainer("empty")

        self._containers = [ self._emptyInstanceContainer ]

        self._id_container_cache = {}

        self._resource_types = [Resources.DefinitionContainers]
Exemplo n.º 39
0
def container_registry(application):
    MimeTypeDatabase.addMimeType(
        MimeType(
            name = "application/x-uranium-definitioncontainer",
            comment = "Uranium Definition Container",
            suffixes = ["def.json"]
        )
    )

    MimeTypeDatabase.addMimeType(
        MimeType(
            name = "application/x-uranium-instancecontainer",
            comment = "Uranium Instance Container",
            suffixes = [ "inst.cfg" ]
        )
    )

    MimeTypeDatabase.addMimeType(
        MimeType(
            name = "application/x-uranium-containerstack",
            comment = "Uranium Container Stack",
            suffixes = [ "stack.cfg" ]
        )
    )

    ContainerRegistry.getInstance()._containers = {} # clear containers from previous iteration

    root_plugin_dir = os.path.join(os.path.dirname(__file__), "..", "..", "..", "plugins")
    PluginRegistry.getInstance().addPluginLocation(root_plugin_dir)

    PluginRegistry.getInstance().loadPlugin("LocalContainerProvider")
    plugin = PluginRegistry.getInstance().getPluginObject("LocalContainerProvider")
    ContainerRegistry.getInstance()._providers.append(plugin)

    PluginRegistry.getInstance()._plugins.clear() # remove plugins

    Resources.addSearchPath(os.path.realpath(os.path.join(os.path.dirname(__file__), "..", "..", "Settings")))


    empty_container = ContainerRegistry.getInstance().getEmptyInstanceContainer()
    empty_definition_changes_container = empty_container
    empty_definition_changes_container.setMetaDataEntry("id", "empty_definition_changes")
    empty_definition_changes_container.setMetaDataEntry("type", "definition_changes")
    ContainerRegistry.getInstance().addContainer(empty_definition_changes_container)

    ContainerRegistry.getInstance().load()

    return ContainerRegistry.getInstance()
Exemplo n.º 40
0
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

        mime = MimeType(name="application/x-uranium-definitioncontainer",
                        comment="Uranium Definition Container",
                        suffixes=["def.json"])
        MimeTypeDatabase.addMimeType(mime)
        mime = MimeType(name="application/x-uranium-instancecontainer",
                        comment="Uranium Instance Container",
                        suffixes=["inst.cfg"])
        MimeTypeDatabase.addMimeType(mime)
        mime = MimeType(name="application/x-uranium-containerstack",
                        comment="Uranium Container Stack",
                        suffixes=["stack.cfg"])
        MimeTypeDatabase.addMimeType(mime)

        self._emptyInstanceContainer = _EmptyInstanceContainer("empty")

        self._containers = [self._emptyInstanceContainer]

        self._resource_types = [Resources.DefinitionContainers]
Exemplo n.º 41
0
def container_registry(application, test_containers_provider,
                       plugin_registry: PluginRegistry):
    MimeTypeDatabase.addMimeType(
        MimeType(name="application/x-uranium-definitioncontainer",
                 comment="Uranium Definition Container",
                 suffixes=["def.json"]))

    MimeTypeDatabase.addMimeType(
        MimeType(name="application/x-uranium-instancecontainer",
                 comment="Uranium Instance Container",
                 suffixes=["inst.cfg"]))

    MimeTypeDatabase.addMimeType(
        MimeType(name="application/x-uranium-containerstack",
                 comment="Uranium Container Stack",
                 suffixes=["stack.cfg"]))

    ContainerRegistry._ContainerRegistry__instance = None  # Reset the private instance variable every time
    registry = ContainerRegistry(application)

    #We need to mock the "priority" plug-in metadata field, but preferably without mocking an entire plug-in.
    with unittest.mock.patch(
            "UM.PluginRegistry.PluginRegistry.getMetaData",
            unittest.mock.MagicMock(return_value={"container_provider": {}})):
        registry.addProvider(test_containers_provider)

    # Make sure that a new database connection is used.
    db_path = os.path.join(Resources.getCacheStoragePath(), "containers.db")
    if os.path.exists(db_path):
        os.remove(db_path)

    container_registry._db_connection = None

    UM.Settings.ContainerStack.setContainerRegistry(registry)
    UM.Settings.InstanceContainer.setContainerRegistry(registry)
    return registry
Exemplo n.º 42
0
# Copyright (c) 2015 Ultimaker B.V.
# Uranium is released under the terms of the AGPLv3 or higher.

import configparser

from UM.Signal import Signal, signalemitter
from UM.Logger import Logger
from UM.MimeTypeDatabase import MimeTypeDatabase, MimeType #To register the MIME type of the preference file.
from UM.SaveFile import SaveFile

MimeTypeDatabase.addMimeType(
    MimeType(
        name = "application/x-uranium-preferences",
        comment = "Uranium Preferences File",
        suffixes = ["cfg"],
        preferred_suffix = "cfg"
    )
)

##      Preferences are application based settings that are saved for future use. 
#       Typical preferences would be window size, standard machine, etc.
@signalemitter
class Preferences:
    Version = 5

    def __init__(self):
        super().__init__()

        self._file = None
        self._parser = None
        self._preferences = {}
Exemplo n.º 43
0
            property_name: str,
            context: Optional[PropertyEvaluationContext] = None) -> bool:
        if property_name is not "value":
            # Do not try to resolve anything but the "value" property
            return False

        if key in self._resolving_settings:
            # To prevent infinite recursion, if getProperty is called with the same key as
            # we are already trying to resolve, we should not try to resolve again. Since
            # this can happen multiple times when trying to resolve a value, we need to
            # track all settings that are being resolved.
            return False

        setting_state = super().getProperty(key, "state", context=context)
        if setting_state is not None and setting_state != InstanceState.Default:
            # When the user has explicitly set a value, we should ignore any resolve and
            # just return that value.
            return False

        return True


## private:
global_stack_mime = MimeType(name="application/x-cura-globalstack",
                             comment="Cura Global Stack",
                             suffixes=["global.cfg"])

MimeTypeDatabase.addMimeType(global_stack_mime)
ContainerRegistry.addContainerTypeByName(GlobalStack, "global_stack",
                                         global_stack_mime.name)
Exemplo n.º 44
0

class InvalidDefinitionError(Exception):
    pass


class IncorrectDefinitionVersionError(Exception):
    pass


class InvalidOverrideError(Exception):
    pass


MimeTypeDatabase.addMimeType(
    MimeType(name="application/x-uranium-definitioncontainer",
             comment="Uranium Definition Container",
             suffixes=["def.json"]))


##  A container for SettingDefinition objects.
#
#
class DefinitionContainer(QObject, DefinitionContainerInterface, PluginObject):
    Version = 2

    ##  Constructor
    #
    #   \param container_id A unique, machine readable/writable ID for this container.
    def __init__(self,
                 container_id: str,
                 i18n_catalog: i18nCatalog = None,
Exemplo n.º 45
0
from UM.Settings.Interfaces import ContainerInterface, ContainerRegistryInterface
from UM.Settings.SettingInstance import SettingInstance

class InvalidInstanceError(Exception):
    pass

class IncorrectInstanceVersionError(Exception):
    pass

class DefinitionNotFoundError(Exception):
    pass

MimeTypeDatabase.addMimeType(
    MimeType(
        name = "application/x-uranium-instancecontainer",
        comment = "Uranium Instance Container",
        suffixes = [ "inst.cfg" ]
    )
)


##  A container for SettingInstance objects.
#
#
@signalemitter
class InstanceContainer(QObject, ContainerInterface, PluginObject):
    Version = 2

    ##  Constructor
    #
    #   \param container_id A unique, machine readable/writable ID for this container.
Exemplo n.º 46
0
    def _shouldResolve(self, key: str, property_name: str) -> bool:
        if property_name is not "value":
            # Do not try to resolve anything but the "value" property
            return False

        if key in self._resolving_settings:
            # To prevent infinite recursion, if getProperty is called with the same key as
            # we are already trying to resolve, we should not try to resolve again. Since
            # this can happen multiple times when trying to resolve a value, we need to
            # track all settings that are being resolved.
            return False

        setting_state = super().getProperty(key, "state")
        if setting_state is not None and setting_state != InstanceState.Default:
            # When the user has explicitly set a value, we should ignore any resolve and
            # just return that value.
            return False

        return True


## private:
global_stack_mime = MimeType(
    name = "application/x-cura-globalstack",
    comment = "Cura Global Stack",
    suffixes = ["global.cfg"]
)

MimeTypeDatabase.addMimeType(global_stack_mime)
ContainerRegistry.addContainerTypeByName(GlobalStack, "global_stack", global_stack_mime.name)
Exemplo n.º 47
0
        super().deserialize(contents, file_name)
        if "enabled" not in self.getMetaData():
            self.setMetaDataEntry("enabled", "True")

    def _onPropertiesChanged(self, key: str, properties: Dict[str, Any]) -> None:
        # When there is a setting that is not settable per extruder that depends on a value from a setting that is,
        # we do not always get properly informed that we should re-evaluate the setting. So make sure to indicate
        # something changed for those settings.
        if not self.getNextStack():
            return #There are no global settings to depend on.
        definitions = self.getNextStack().definition.findDefinitions(key = key)
        if definitions:
            has_global_dependencies = False
            for relation in definitions[0].relations:
                if not getattr(relation.target, "settable_per_extruder", True):
                    has_global_dependencies = True
                    break

            if has_global_dependencies:
                self.getNextStack().propertiesChanged.emit(key, properties)


extruder_stack_mime = MimeType(
    name = "application/x-cura-extruderstack",
    comment = "Cura Extruder Stack",
    suffixes = ["extruder.cfg"]
)

MimeTypeDatabase.addMimeType(extruder_stack_mime)
ContainerRegistry.addContainerTypeByName(ExtruderStack, "extruder_stack", extruder_stack_mime.name)
Exemplo n.º 48
0
class InvalidDefinitionError(Exception):
    pass


class IncorrectDefinitionVersionError(Exception):
    pass


class InvalidOverrideError(Exception):
    pass

MimeTypeDatabase.addMimeType(
    MimeType(
        name = "application/x-uranium-definitioncontainer",
        comment = "Uranium Definition Container",
        suffixes = ["def.json"]
    )
)


##  A container for SettingDefinition objects.
#
#
class DefinitionContainer(QObject, DefinitionContainerInterface, PluginObject):
    Version = 2

    ##  Constructor
    #
    #   \param container_id A unique, machine readable/writable ID for this container.
    def __init__(self, container_id: str, i18n_catalog = None, *args, **kwargs):
Exemplo n.º 49
0
from UM.Logger import Logger
try:
    from . import UFPWriter
except ImportError:
    Logger.log("w", "Could not import UFPWriter; libCharon may be missing")

from UM.i18n import i18nCatalog #To translate the file format description.
from UM.Mesh.MeshWriter import MeshWriter #For the binary mode flag.
from UM.MimeTypeDatabase import MimeTypeDatabase, MimeType


MimeTypeDatabase.addMimeType(
    MimeType(
        name = "application/x-cura-stl-file",
        comment = "Cura UFP File",
        suffixes = ["ufp"]
    )
)

i18n_catalog = i18nCatalog("cura")

def getMetaData():
    if "UFPWriter.UFPWriter" not in sys.modules:
        return {}

    return {
        "mesh_writer": {
            "output": [
                {
                    "mime_type": "application/x-ufp",
Exemplo n.º 50
0
from UM.Settings.SettingFunction import SettingFunction
from UM.Settings.Validator import ValidatorState


class IncorrectVersionError(Exception):
    pass


class InvalidContainerStackError(Exception):
    pass


MimeTypeDatabase.addMimeType(
    MimeType(
        name = "application/x-uranium-containerstack",
        comment = "Uranium Container Stack",
        suffixes = [ "stack.cfg" ]
    )
)

MimeTypeDatabase.addMimeType(
    MimeType(
        name = "application/x-uranium-extruderstack",
        comment = "Uranium Extruder Stack",
        suffixes = [ "stack.cfg" ]
    )
)


##  A stack of setting containers to handle setting value retrieval.
@signalemitter
Exemplo n.º 51
0
    def __init__(self) -> None:
        super().__init__()

        self._supported_extensions = [
            ".ctm", ".dae", ".gltf", ".glb", ".ply", ".zae"
        ]
        MimeTypeDatabase.addMimeType(
            MimeType(name="application/x-ctm",
                     comment="Open Compressed Triangle Mesh",
                     suffixes=["ctm"]))
        MimeTypeDatabase.addMimeType(
            MimeType(name="model/vnd.collada+xml",
                     comment="COLLADA Digital Asset Exchange",
                     suffixes=["dae"]))
        MimeTypeDatabase.addMimeType(
            MimeType(name="model/gltf-binary",
                     comment="glTF Binary",
                     suffixes=["glb"]))
        MimeTypeDatabase.addMimeType(
            MimeType(name="model/gltf+json",
                     comment="glTF Embedded JSON",
                     suffixes=["gltf"]))
        # Trimesh seems to have a bug when reading .off files.
        #MimeTypeDatabase.addMimeType(
        #    MimeType(
        #        name = "application/x-off",
        #        comment = "Geomview Object File Format",
        #        suffixes = ["off"]
        #    )
        #)
        MimeTypeDatabase.addMimeType(
            MimeType(
                name=
                "application/x-ply",  # Wikipedia lists the MIME type as "text/plain" but that won't do as it's not unique to PLY files.
                comment="Stanford Triangle Format",
                suffixes=["ply"]))
        MimeTypeDatabase.addMimeType(
            MimeType(name="model/vnd.collada+xml+zip",
                     comment="Compressed COLLADA Digital Asset Exchange",
                     suffixes=["zae"]))
Exemplo n.º 52
0
# Copyright (c) 2015 Ultimaker B.V.
# Uranium is released under the terms of the AGPLv3 or higher.

import configparser

from UM.Signal import Signal, signalemitter
from UM.Logger import Logger
from UM.MimeTypeDatabase import MimeTypeDatabase, MimeType #To register the MIME type of the preference file.
from UM.SaveFile import SaveFile

MimeTypeDatabase.addMimeType(
    MimeType(
        name = "application/x-uranium-preferences",
        comment = "Uranium Preferences File",
        suffixes = ["cfg"],
        preferred_suffix = "cfg"
    )
)

##      Preferences are application based settings that are saved for future use. 
#       Typical preferences would be window size, standard machine, etc.
@signalemitter
class Preferences:
    Version = 4

    def __init__(self):
        super().__init__()

        self._file = None
        self._parser = None
        self._preferences = {}