1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
__copyright__ = "Copyright (C) 2013 David Braam - Released under terms of the AGPLv3 License"
import wx, wx.stc
from Cura.gui.util import gcodeTextArea
from Cura.util import profile
#Panel to change the start & endcode of the gcode.
class alterationPanel(wx.Panel):
def __init__(self, parent, callback):
wx.Panel.__init__(self, parent,-1)
self.callback = callback
self.alterationFileList = ['start.gcode', 'end.gcode']#, 'nextobject.gcode', 'replace.csv'
if int(profile.getMachineSetting('extruder_amount')) > 1:
self.alterationFileList += ['preSwitchExtruder.gcode', 'postSwitchExtruder.gcode']
self.alterationFileList += ['start2.gcode', 'end2.gcode']
if int(profile.getMachineSetting('extruder_amount')) > 2:
self.alterationFileList += ['start3.gcode', 'end3.gcode']
if int(profile.getMachineSetting('extruder_amount')) > 3:
self.alterationFileList += ['start4.gcode', 'end4.gcode']
if int(profile.getMachineSetting('extruder_amount')) > 4:
self.alterationFileList += ['start5.gcode', 'end5.gcode']
self.currentFile = None
self.textArea = gcodeTextArea.GcodeTextArea(self)
self.list = wx.ListBox(self, choices=self.alterationFileList, style=wx.LB_SINGLE)
self.list.SetSelection(0)
self.Bind(wx.EVT_LISTBOX, self.OnSelect, self.list)
self.textArea.Bind(wx.EVT_KILL_FOCUS, self.OnFocusLost, self.textArea)
self.textArea.Bind(wx.stc.EVT_STC_CHANGE, self.OnFocusLost, self.textArea)
sizer = wx.GridBagSizer()
sizer.Add(self.list, (0,0), span=(5,1), flag=wx.EXPAND)
sizer.Add(self.textArea, (5,0), span=(5,1), flag=wx.EXPAND)
sizer.AddGrowableCol(0)
sizer.AddGrowableRow(0)
sizer.AddGrowableRow(5)
sizer.AddGrowableRow(6)
sizer.AddGrowableRow(7)
self.SetSizer(sizer)
self.loadFile(self.alterationFileList[self.list.GetSelection()])
self.currentFile = self.list.GetSelection()
def OnSelect(self, e):
self.loadFile(self.alterationFileList[self.list.GetSelection()])
self.currentFile = self.list.GetSelection()
def loadFile(self, filename):
self.textArea.SetValue(profile.getAlterationFile(filename))
def OnFocusLost(self, e):
if self.currentFile == self.list.GetSelection():
profile.setAlterationFile(self.alterationFileList[self.list.GetSelection()], self.textArea.GetValue())
self.callback()
def updateProfileToControls(self):
self.OnSelect(None)
|