diff --git a/plugins/3MFReader/ThreeMFWorkspaceReader.py b/plugins/3MFReader/ThreeMFWorkspaceReader.py index 3250706b97..c46b83bd1f 100644 --- a/plugins/3MFReader/ThreeMFWorkspaceReader.py +++ b/plugins/3MFReader/ThreeMFWorkspaceReader.py @@ -1,5 +1,7 @@ from UM.Workspace.WorkspaceReader import WorkspaceReader +from UM.Application import Application +from UM.Logger import Logger ## Base implementation for reading 3MF workspace files. class ThreeMFWorkspaceReader(WorkspaceReader): @@ -7,7 +9,17 @@ class ThreeMFWorkspaceReader(WorkspaceReader): super().__init__() self._supported_extensions = [".3mf"] + self._3mf_mesh_reader = None + def preRead(self, file_name): - return WorkspaceReader.PreReadResult.accepted - # TODO: Find 3MFFileReader so we can load SceneNodes + self._3mf_mesh_reader = Application.getInstance().getMeshFileHandler().getReaderForFile(file_name) + if self._3mf_mesh_reader and self._3mf_mesh_reader.preRead(file_name) == WorkspaceReader.PreReadResult.accepted: + pass + else: + Logger.log("w", "Could not find reader that was able to read the scene data for 3MF workspace") + return WorkspaceReader.PreReadResult.failed # TODO: Ask user if it's okay for the scene to be cleared + return WorkspaceReader.PreReadResult.accepted + + def read(self, file_name): + pass