chiark / gitweb /
Change the behaviour of the "print" file menu entry. For #466
authordaid <daid303@gmail.com>
Wed, 26 Jun 2013 08:01:46 +0000 (10:01 +0200)
committerdaid <daid303@gmail.com>
Wed, 26 Jun 2013 08:01:46 +0000 (10:01 +0200)
Cura/gui/mainWindow.py
Cura/gui/sceneView.py

index c7e69f4a751553befa758f2eeaed62328d51e702..1f1070eb7cbaf042076436a67446d446023c844e 100644 (file)
@@ -60,7 +60,7 @@ class mainWindow(wx.Frame):
 
                self.fileMenu.AppendSeparator()
                i = self.fileMenu.Append(-1, 'Print...\tCTRL+P')
-               self.Bind(wx.EVT_MENU, lambda e: self.scene.showPrintWindow(1), i)
+               self.Bind(wx.EVT_MENU, lambda e: self.scene.showPrintWindow(), i)
                i = self.fileMenu.Append(-1, 'Save GCode...')
                self.Bind(wx.EVT_MENU, lambda e: self.scene.showSaveGCode(), i)
                i = self.fileMenu.Append(-1, 'Show slice engine log...')
index 8400fd0f79ffce4c38e073e1afb2219bb3448e31..ee4e1cb05b930122aee5c0d1056f03388cd61f65 100644 (file)
@@ -37,6 +37,7 @@ class SceneView(openglGui.glGuiPanel):
                self._scene = objectScene.Scene()
                self._gcode = None
                self._gcodeVBOs = []
+               self._gcodeFilename = None
                self._gcodeLoadThread = None
                self._objectShader = None
                self._objectLoadShader = None
@@ -59,7 +60,7 @@ class SceneView(openglGui.glGuiPanel):
                self.tempMatrix = None
 
                self.openFileButton      = openglGui.glButton(self, 4, 'Load', (0,0), self.showLoadModel)
-               self.printButton         = openglGui.glButton(self, 6, 'Print', (1,0), self.showPrintWindow)
+               self.printButton         = openglGui.glButton(self, 6, 'Print', (1,0), self.OnPrintButton)
                self.printButton.setDisabled(True)
 
                group = []
@@ -163,12 +164,10 @@ class SceneView(openglGui.glGuiPanel):
                dlg.Destroy()
                meshLoader.saveMeshes(filename, self._scene.objects())
 
-       def showPrintWindow(self, button):
+       def OnPrintButton(self, button):
                if button == 1:
                        if machineCom.machineIsConnected():
-                               printWindow.printFile(self._gcodeFilename)
-                               if self._gcodeFilename == self._slicer.getGCodeFilename():
-                                       self._slicer.submitSliceInfoOnline()
+                               self.showPrintWindow()
                        elif len(removableStorage.getPossibleSDcardDrives()) > 0:
                                drives = removableStorage.getPossibleSDcardDrives()
                                if len(drives) > 1:
@@ -186,12 +185,19 @@ class SceneView(openglGui.glGuiPanel):
                                self.showSaveGCode()
                if button == 3:
                        menu = wx.Menu()
-                       self.Bind(wx.EVT_MENU, lambda e: printWindow.printFile(self._gcodeFilename), menu.Append(-1, 'Print with USB'))
+                       self.Bind(wx.EVT_MENU, lambda e: self.showPrintWindow(), menu.Append(-1, 'Print with USB'))
                        self.Bind(wx.EVT_MENU, lambda e: self.showSaveGCode(), menu.Append(-1, 'Save GCode...'))
                        self.Bind(wx.EVT_MENU, lambda e: self._showSliceLog(), menu.Append(-1, 'Slice engine log...'))
                        self.PopupMenu(menu)
                        menu.Destroy()
 
+       def showPrintWindow(self):
+               if self._gcodeFilename is None:
+                       return
+               printWindow.printFile(self._gcodeFilename)
+               if self._gcodeFilename == self._slicer.getGCodeFilename():
+                       self._slicer.submitSliceInfoOnline()
+
        def showSaveGCode(self):
                defPath = profile.getPreference('lastFile')
                defPath = defPath[0:defPath.rfind('.')] + '.gcode'