diff --git a/cura/Scene/BlockSlicingDecorator.py b/cura/Scene/BlockSlicingDecorator.py index 3fc0015836..0536e1635f 100644 --- a/cura/Scene/BlockSlicingDecorator.py +++ b/cura/Scene/BlockSlicingDecorator.py @@ -1,9 +1,12 @@ +# Copyright (c) 2018 Ultimaker B.V. +# Cura is released under the terms of the LGPLv3 or higher. + from UM.Scene.SceneNodeDecorator import SceneNodeDecorator class BlockSlicingDecorator(SceneNodeDecorator): - def __init__(self): + def __init__(self) -> None: super().__init__() - def isBlockSlicing(self): + def isBlockSlicing(self) -> bool: return True diff --git a/plugins/GCodeReader/FlavorParser.py b/plugins/GCodeReader/FlavorParser.py index 9ba1deb410..6fe2cb5260 100644 --- a/plugins/GCodeReader/FlavorParser.py +++ b/plugins/GCodeReader/FlavorParser.py @@ -195,10 +195,6 @@ class FlavorParser: self._previous_z = z elif self._previous_extrusion_value > e[self._extruder_number]: path.append([x, y, z, f, e[self._extruder_number] + self._extrusion_length_offset[self._extruder_number], LayerPolygon.MoveRetractionType]) - - # This case only for initial start, for the first coordinate in GCode - elif e[self._extruder_number] == 0 and self._previous_extrusion_value == 0: - path.append([x, y, z, f, e[self._extruder_number] + self._extrusion_length_offset[self._extruder_number], LayerPolygon.MoveRetractionType]) else: path.append([x, y, z, f, e[self._extruder_number] + self._extrusion_length_offset[self._extruder_number], LayerPolygon.MoveCombingType]) return self._position(x, y, z, f, e) @@ -235,6 +231,9 @@ class FlavorParser: # Sometimes a G92 E0 is introduced in the middle of the GCode so we need to keep those offsets for calculate the line_width self._extrusion_length_offset[self._extruder_number] += position.e[self._extruder_number] - params.e position.e[self._extruder_number] = params.e + self._previous_extrusion_value = params.e + else: + self._previous_extrusion_value = 0.0 return self._position( params.x if params.x is not None else position.x, params.y if params.y is not None else position.y, @@ -243,7 +242,6 @@ class FlavorParser: position.e) def processGCode(self, G: int, line: str, position: Position, path: List[List[Union[float, int]]]) -> Position: - self._previous_extrusion_value = 0.0 func = getattr(self, "_gCode%s" % G, None) line = line.split(";", 1)[0] # Remove comments (if any) if func is not None: @@ -295,7 +293,7 @@ class FlavorParser: self._cancelled = False # We obtain the filament diameter from the selected extruder to calculate line widths global_stack = CuraApplication.getInstance().getGlobalContainerStack() - + if not global_stack: return None @@ -338,6 +336,7 @@ class FlavorParser: min_layer_number = 0 negative_layers = 0 previous_layer = 0 + self._previous_extrusion_value = 0.0 for line in stream.split("\n"): if self._cancelled: diff --git a/plugins/GCodeReader/RepRapFlavorParser.py b/plugins/GCodeReader/RepRapFlavorParser.py index ba1e13f23d..2a24d16add 100644 --- a/plugins/GCodeReader/RepRapFlavorParser.py +++ b/plugins/GCodeReader/RepRapFlavorParser.py @@ -1,9 +1,9 @@ -# Copyright (c) 2017 Ultimaker B.V. +# Copyright (c) 2018 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. from . import FlavorParser -# This parser is intented for interpret the RepRap Firmware flavor +## This parser is intended to interpret the RepRap Firmware g-code flavor. class RepRapFlavorParser(FlavorParser.FlavorParser): def __init__(self): diff --git a/plugins/UM3NetworkPrinting/resources/qml/PrintWindow.qml b/plugins/UM3NetworkPrinting/resources/qml/PrintWindow.qml index a28167d260..c2590e99a8 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/PrintWindow.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/PrintWindow.qml @@ -8,9 +8,6 @@ import UM 1.1 as UM UM.Dialog { id: base; - property var printersModel: { - return ListModel{}; - } height: minimumHeight; leftButtons: [ Button { @@ -87,7 +84,9 @@ UM.Dialog { id: printerSelectionCombobox; Behavior on height { NumberAnimation { duration: 100 } } height: 40 * screenScaleFactor; - model: base.printersModel; + model: ListModel { + id: printersModel; + } textRole: "name"; width: parent.width; } diff --git a/resources/qml/Menus/ViewMenu.qml b/resources/qml/Menus/ViewMenu.qml index 9a2e603673..12d4ffd7dd 100644 --- a/resources/qml/Menus/ViewMenu.qml +++ b/resources/qml/Menus/ViewMenu.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2016 Ultimaker B.V. +// Copyright (c) 2018 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 @@ -9,9 +9,8 @@ import Cura 1.0 as Cura Menu { - title: catalog.i18nc("@title:menu menubar:toplevel", "&View"); + title: catalog.i18nc("@title:menu menubar:toplevel", "&View") id: base - enabled: !PrintInformation.preSliced property var multiBuildPlateModel: CuraApplication.getMultiBuildPlateModel() @@ -26,11 +25,15 @@ Menu checked: model.active exclusiveGroup: group onTriggered: UM.Controller.setActiveView(model.id) + enabled: !PrintInformation.preSliced } onObjectAdded: base.insertItem(index, object) onObjectRemoved: base.removeItem(object) } - ExclusiveGroup { id: group } + ExclusiveGroup + { + id: group + } MenuSeparator {} @@ -44,36 +47,47 @@ Menu MenuItem { action: Cura.Actions.viewRightSideCamera; } } - MenuSeparator { + MenuSeparator + { visible: UM.Preferences.getValue("cura/use_multi_build_plate") } Menu { id: buildPlateMenu; - title: catalog.i18nc("@action:inmenu menubar:view","&Build plate"); + title: catalog.i18nc("@action:inmenu menubar:view","&Build plate") visible: UM.Preferences.getValue("cura/use_multi_build_plate") Instantiator { model: base.multiBuildPlateModel - MenuItem { + MenuItem + { text: base.multiBuildPlateModel.getItem(index).name; - onTriggered: Cura.SceneController.setActiveBuildPlate(base.multiBuildPlateModel.getItem(index).buildPlateNumber); - checkable: true; - checked: base.multiBuildPlateModel.getItem(index).buildPlateNumber == base.multiBuildPlateModel.activeBuildPlate; - exclusiveGroup: buildPlateGroup; + onTriggered: Cura.SceneController.setActiveBuildPlate(base.multiBuildPlateModel.getItem(index).buildPlateNumber) + checkable: true + checked: base.multiBuildPlateModel.getItem(index).buildPlateNumber == base.multiBuildPlateModel.activeBuildPlate + exclusiveGroup: buildPlateGroup visible: UM.Preferences.getValue("cura/use_multi_build_plate") } - onObjectAdded: buildPlateMenu.insertItem(index, object); + onObjectAdded: buildPlateMenu.insertItem(index, object) onObjectRemoved: buildPlateMenu.removeItem(object) } - ExclusiveGroup { id: buildPlateGroup; } + ExclusiveGroup + { + id: buildPlateGroup + } } MenuSeparator {} - MenuItem { action: Cura.Actions.expandSidebar; } - + MenuItem + { + action: Cura.Actions.expandSidebar + } + MenuSeparator {} - MenuItem { action: Cura.Actions.toggleFullScreen; } + MenuItem + { + action: Cura.Actions.toggleFullScreen + } }