From 9da00563e544d0a3391f2336aee4f10e31aa4af4 Mon Sep 17 00:00:00 2001 From: Victor Larchenko Date: Fri, 21 Oct 2016 15:26:34 +0600 Subject: [PATCH] T553: Fixed job name --- cura/PrintInformation.py | 8 +++-- plugins/GCODEReader/GCODEReader.py | 52 +++++++++++++++--------------- 2 files changed, 32 insertions(+), 28 deletions(-) diff --git a/cura/PrintInformation.py b/cura/PrintInformation.py index b65101ecc7..fa0b43993e 100644 --- a/cura/PrintInformation.py +++ b/cura/PrintInformation.py @@ -49,6 +49,8 @@ class PrintInformation(QObject): self._material_lengths = [] self._material_weights = [] + self._pre_sliced = False + self._backend = Application.getInstance().getBackend() if self._backend: self._backend.printDurationMessage.connect(self._onPrintDurationMessage) @@ -122,7 +124,9 @@ class PrintInformation(QObject): def createJobName(self, base_name): base_name = self._stripAccents(base_name) self._setAbbreviatedMachineName() - if Preferences.getInstance().getValue("cura/jobname_prefix"): + if self._pre_sliced: + return "Pre-sliced_" + base_name + elif Preferences.getInstance().getValue("cura/jobname_prefix"): return self._abbr_machine + "_" + base_name else: return base_name @@ -150,4 +154,4 @@ class PrintInformation(QObject): ## Utility method that strips accents from characters (eg: รข -> a) def _stripAccents(self, str): - return ''.join(char for char in unicodedata.normalize('NFD', str) if unicodedata.category(char) != 'Mn') \ No newline at end of file + return ''.join(char for char in unicodedata.normalize('NFD', str) if unicodedata.category(char) != 'Mn') diff --git a/plugins/GCODEReader/GCODEReader.py b/plugins/GCODEReader/GCODEReader.py index 868fa1e430..55802e5c16 100644 --- a/plugins/GCODEReader/GCODEReader.py +++ b/plugins/GCODEReader/GCODEReader.py @@ -58,35 +58,33 @@ class GCODEReader(MeshReader): except: return None - def onSceneChanged(self, obj): - scene = Application.getInstance().getController().getScene() + def parent_changed(self, node): + if node.getParent() is None: + scene = Application.getInstance().getController().getScene() - def findAny(): - for node in DepthFirstIterator(scene.getRoot()): - if hasattr(node, "gcode"): - return True - return False + def findAny(): + for node1 in DepthFirstIterator(scene.getRoot()): + if hasattr(node1, "gcode") and getattr(node1, "gcode") is True: + return True + return False - if not findAny(): - # Preferences.getInstance().setValue("cura/jobname_prefix", True) backend = Application.getInstance().getBackend() - backend._pauseSlicing = False - Application.getInstance().setHideSettings(False) - #Application.getInstance().getPrintInformation()._setAbbreviatedMachineName() - else: - backend = Application.getInstance().getBackend() - backend._pauseSlicing = True - backend.backendStateChange.emit(3) - Application.getInstance().getPrintInformation()._abbr_machine = "Pre-sliced" - Application.getInstance().setHideSettings(True) + if not findAny(): + backend._pauseSlicing = False + Application.getInstance().setHideSettings(False) + Application.getInstance().getPrintInformation()._pre_sliced = False + else: + backend._pauseSlicing = True + backend.backendStateChange.emit(3) + Application.getInstance().getPrintInformation()._pre_sliced = True + Application.getInstance().setHideSettings(True) + def read(self, file_name): scene_node = None extension = os.path.splitext(file_name)[1] if extension.lower() in self._supported_extensions: - scene = Application.getInstance().getController().getScene() - scene.sceneChanged.connect(self.onSceneChanged) # for node in DepthFirstIterator(scene.getRoot()): # if node.callDecoration("getLayerData"): # node.getParent().removeChild(node) @@ -245,7 +243,12 @@ class GCODEReader(MeshReader): decorator.setLayerData(layer_mesh) scene_node.addDecorator(decorator) - Application.getInstance().getPrintInformation()._abbr_machine = "Pre-sliced" + Application.getInstance().getPrintInformation()._pre_sliced = True + + + + + scene_node.parentChanged.connect(self.parent_changed) scene_node_parent = Application.getInstance().getBuildVolume() scene_node.setParent(scene_node_parent) @@ -256,6 +259,8 @@ class GCODEReader(MeshReader): scene_node.setPosition(Vector(-machine_width / 2, 0, machine_depth / 2)) + + # mesh_builder = MeshBuilder() # mesh_builder.setFileName(file_name) # @@ -264,11 +269,6 @@ class GCODEReader(MeshReader): # scene_node.setMeshData(mesh_builder.build()) # scene_node.setMeshData(MeshData(file_name=file_name)) - - - Preferences.getInstance().setValue("cura/jobname_prefix", True) - - view = Application.getInstance().getController().getActiveView() if view.getPluginId() == "LayerView": view.resetLayerData()