D6: Fixed gcode loading to scene while undo/redo

This commit is contained in:
Victor Larchenko 2016-12-12 12:45:46 +06:00 committed by Youness Alaoui
parent fecf23d66d
commit 90f7cebbbb
4 changed files with 24 additions and 4 deletions

View file

@ -598,6 +598,9 @@ class CuraApplication(QtApplication):
continue
if node.callDecoration("shouldBlockSlicing"):
should_pause = True
gcode_list = node.callDecoration("gCodeList")
if gcode_list is not None:
self.getController().getScene().gcode_list = gcode_list
count += 1
if not scene_bounding_box:

View file

@ -0,0 +1,13 @@
from UM.Scene.SceneNodeDecorator import SceneNodeDecorator
class GCodeListDecorator(SceneNodeDecorator):
def __init__(self):
super().__init__()
self._gcode_list = []
def gCodeList(self):
return self._gcode_list
def setGCodeList(self, list):
self._gcode_list = list

View file

@ -16,7 +16,7 @@ catalog = i18nCatalog("cura")
from cura import LayerDataBuilder
from cura import LayerDataDecorator
from cura.LayerPolygon import LayerPolygon
from cura.SliceableObjectDecorator import SliceableObjectDecorator
from cura.GCodeListDecorator import GCodeListDecorator
import numpy
import math
@ -203,6 +203,7 @@ class GCodeReader(MeshReader):
current_line = 0
for line in file:
file_lines += 1
glist.append(line)
file.seek(0)
file_step = max(math.floor(file_lines / 100), 1)
@ -260,7 +261,10 @@ class GCodeReader(MeshReader):
decorator = LayerDataDecorator.LayerDataDecorator()
decorator.setLayerData(layer_mesh)
scene_node.addDecorator(decorator)
Application.getInstance().getController().getScene().gcode_list = glist
gcode_list_decorator = GCodeListDecorator()
gcode_list_decorator.setGCodeList(glist)
scene_node.addDecorator(gcode_list_decorator)
Logger.log("d", "Finished parsing %s" % file_name)
self._message.hide()

View file

@ -106,7 +106,7 @@ Rectangle {
id: saveToButton
tooltip: UM.OutputDeviceManager.activeDeviceDescription;
enabled: base.backendState == 3 && base.activity == true
enabled: (base.backendState == 3 || base.backendState == 5) && base.activity == true
height: UM.Theme.getSize("save_button_save_to_button").height
anchors.top: parent.top
@ -181,7 +181,7 @@ Rectangle {
anchors.rightMargin: UM.Theme.getSize("default_margin").width
width: UM.Theme.getSize("save_button_save_to_button").height
height: UM.Theme.getSize("save_button_save_to_button").height
enabled: base.backendState == 3 && base.activity == true
enabled: (base.backendState == 3 || base.backendState == 5) && base.activity == true
visible: devicesModel.deviceCount > 1