\r
sb = wx.StaticBox(self.panel, label="Statistics")\r
boxsizer = wx.StaticBoxSizer(sb, wx.VERTICAL)\r
- self.statsText = wx.StaticText(self.panel, -1, "Filament: ####.##m #.##g\nPrint time: #####:##\nMachine state: Detecting baudrate")\r
+ self.statsText = wx.StaticText(self.panel, -1, "Filament: ####.##m #.##g\nPrint time: #####:##\nMachine state:\nDetecting baudrateXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX")\r
boxsizer.Add(self.statsText, flag=wx.LEFT, border=5)\r
\r
self.sizer.Add(boxsizer, pos=(0,0), span=(5,1), flag=wx.EXPAND)\r
sizer = wx.GridBagSizer(2, 2)\r
self.camPage.SetSizer(sizer)\r
\r
+ self.timelapsEnable = wx.CheckBox(self.camPage, -1, 'Enable timelaps')\r
+ sizer.Add(self.timelapsEnable, pos=(0,0), span=(1,2), flag=wx.EXPAND)\r
+ \r
+ pages = self.cam.propertyPages()\r
+ for page in pages:\r
+ button = wx.Button(self.camPage, -1, page)\r
+ button.index = pages.index(page)\r
+ sizer.Add(button, pos=(1, pages.index(page)))\r
+ button.Bind(wx.EVT_BUTTON, self.OnPropertyPageButton)\r
+ \r
self.camPreview = wx.Panel(self.camPage)\r
- sizer.Add(self.camPreview, pos=(0,0), flag=wx.EXPAND)\r
+ sizer.Add(self.camPreview, pos=(2,0), span=(1,2), flag=wx.EXPAND)\r
\r
nb.AddPage(self.camPage, 'Camera')\r
self.camPreview.timer = wx.Timer(self)\r
#self.UpdateProgress()\r
\r
def OnCameraTimer(self, e):\r
- if self.machineCom != None and not self.machineCom.isPrinting():\r
+ if self.machineCom != None and self.machineCom.isPrinting():\r
return\r
self.cam.takeNewImage()\r
self.camPreview.Refresh()\r
rect = self.GetUpdateRegion().GetBox()\r
dc.SetClippingRect(rect)\r
dc.SetBackground(wx.Brush(self.camPreview.GetBackgroundColour(), wx.SOLID))\r
- dc.Clear()\r
if self.cam.getLastImage() != None:\r
+ self.camPreview.SetMinSize((self.cam.getLastImage().GetWidth(), self.cam.getLastImage().GetHeight()))\r
+ self.camPage.Fit()\r
dc.DrawBitmap(self.cam.getLastImage(), 0, 0)\r
+ else:\r
+ dc.Clear()\r
+ \r
+ def OnPropertyPageButton(self, e):\r
+ self.cam.openPropertyPage(e.GetEventObject().index)\r
\r
def UpdateButtonStates(self):\r
self.connectButton.Enable(self.machineCom == None or self.machineCom.isClosedOrError())\r
self.bedTemperatureLabel.Show(True)\r
self.bedTemperatureSelect.Show(True)\r
self.temperaturePanel.Layout()\r
- status += 'Machine state: %s\n' % (self.machineCom.getStateString())\r
+ status += 'Machine state:%s\n' % (self.machineCom.getStateString())\r
\r
self.statsText.SetLabel(status.strip())\r
\r
if self.machineCom.isPrinting():\r
return\r
self.currentZ = -1\r
- if self.cam != None:\r
+ if self.cam != None and self.timelapsEnable.GetValue():\r
self.cam.startTimelaps(self.filename[: self.filename.rfind('.')] + ".mpg")\r
self.machineCom.printGCode(self.gcodeList)\r
self.UpdateButtonStates()\r
\r
def AddTermLog(self, line):\r
self.termLog.AppendText(unicode(line, 'utf-8', 'replace'))\r
+ l = len(self.termLog.GetValue())\r
+ self.termLog.SetCaret(wx.Caret(self.termLog, (l, l)))\r
\r
def OnTermEnterLine(self, e):\r
line = self.termInput.GetValue()\r