chiark / gitweb /
allow dropping gcode files
authorhg42@gmx.net <hg42@gmx.net>
Mon, 16 Sep 2013 21:24:58 +0000 (23:24 +0200)
committerhg42@gmx.net <hg42@gmx.net>
Mon, 16 Sep 2013 21:24:58 +0000 (23:24 +0200)
Cura/gui/mainWindow.py
Cura/gui/sceneView.py
Cura/gui/tools/batchRun.py

index cd656e74d64f9d640bd6ed33cc5dedb3081ceb61..ab40a40e6adfe8f57b4c71c125810ac2da99ab45 100644 (file)
@@ -31,7 +31,7 @@ class mainWindow(wx.Frame):
 
                wx.EVT_CLOSE(self, self.OnClose)
 
-               self.SetDropTarget(dropTarget.FileDropTarget(self.OnDropFiles, meshLoader.loadSupportedExtensions()))
+               self.SetDropTarget(dropTarget.FileDropTarget(self.OnDropFiles, meshLoader.loadSupportedExtensions() + ['.g', '.gcode']))
 
                self.normalModeOnlyItems = []
 
@@ -267,10 +267,11 @@ class mainWindow(wx.Frame):
                prefDialog.Show()
 
        def OnDropFiles(self, files):
+               print "dropped ", files
                if len(files) > 0:
                        profile.setPluginConfig([])
                        self.updateProfileToControls()
-               self.scene.loadScene(files)
+               self.scene.loadFiles(files)
 
        def OnModelMRU(self, e):
                fileNum = e.GetId() - self.ID_MRU_MODEL1
@@ -283,7 +284,7 @@ class mainWindow(wx.Frame):
                # Load Model
                profile.putPreference('lastFile', path)
                filelist = [ path ]
-               self.scene.loadScene(filelist)
+               self.scene.loadFiles(filelist)
 
        def addToModelMRU(self, file):
                self.modelFileHistory.AddFileToHistory(file)
index 916eaa0262bd92bcca8ead1add297dfa0b14e984..60c4f633d693384fd6b3b0a947ff001ae7933afd 100644 (file)
@@ -119,6 +119,42 @@ class SceneView(openglGui.glGuiPanel):
                self.updateToolButtons()
                self.updateProfileToControls()
 
+       def loadGCodeFile(self, filename):
+               self.OnDeleteAll(None)
+               if self._gcode is not None:
+                       self._gcode = None
+                       for layerVBOlist in self._gcodeVBOs:
+                               for vbo in layerVBOlist:
+                                       self.glReleaseList.append(vbo)
+                       self._gcodeVBOs = []
+               self._gcode = gcodeInterpreter.gcode()
+               self._gcodeFilename = filename
+               self.printButton.setBottomText('')
+               self.viewSelection.setValue(4)
+               self.printButton.setDisabled(False)
+               self.youMagineButton.setDisabled(True)
+               self.OnViewChange()
+
+       def loadSceneFiles(self, filenames):
+               self.youMagineButton.setDisabled(False)
+               if self.viewSelection.getValue() == 4:
+                       self.viewSelection.setValue(0)
+                       self.OnViewChange()
+               self.loadScene(filenames)
+
+       def loadFiles(self, filenames):
+               print "load ", filenames
+               gcodeFilename = None
+               for filename in filenames:
+                       self.GetParent().GetParent().GetParent().addToModelMRU(filename)
+                       ext = filename[filename.rfind('.')+1:].upper()
+                       if ext == 'G' or ext == 'GCODE':
+                               gcodeFilename = filename
+               if gcodeFilename is not None:
+                       self.loadGCodeFile(gcodeFilename)
+               else:
+                       self.loadSceneFiles(filenames)
+
        def showLoadModel(self, button = 1):
                if button == 1:
                        dlg=wx.FileDialog(self, _("Open 3D model"), os.path.split(profile.getPreference('lastFile'))[0], style=wx.FD_OPEN|wx.FD_FILE_MUST_EXIST|wx.FD_MULTIPLE)
@@ -131,32 +167,7 @@ class SceneView(openglGui.glGuiPanel):
                        if len(filenames) < 1:
                                return False
                        profile.putPreference('lastFile', filenames[0])
-                       gcodeFilename = None
-                       for filename in filenames:
-                               self.GetParent().GetParent().GetParent().addToModelMRU(filename)
-                               ext = filename[filename.rfind('.')+1:].upper()
-                               if ext == 'G' or ext == 'GCODE':
-                                       gcodeFilename = filename
-                       if gcodeFilename is not None:
-                               if self._gcode is not None:
-                                       self._gcode = None
-                                       for layerVBOlist in self._gcodeVBOs:
-                                               for vbo in layerVBOlist:
-                                                       self.glReleaseList.append(vbo)
-                                       self._gcodeVBOs = []
-                               self._gcode = gcodeInterpreter.gcode()
-                               self._gcodeFilename = gcodeFilename
-                               self.printButton.setBottomText('')
-                               self.viewSelection.setValue(4)
-                               self.printButton.setDisabled(False)
-                               self.youMagineButton.setDisabled(True)
-                               self.OnViewChange()
-                       else:
-                               self.youMagineButton.setDisabled(False)
-                               if self.viewSelection.getValue() == 4:
-                                       self.viewSelection.setValue(0)
-                                       self.OnViewChange()
-                               self.loadScene(filenames)
+                       self.loadFiles(filenames)
 
        def showSaveModel(self):
                if len(self._scene.objects()) < 1:
index ddd8894bdb6221efe52aeedd7d7ebe18e908d799..14c1e562b7309cdde0dd14ffd381d839d8d566b9 100644 (file)
@@ -15,7 +15,7 @@ class batchRunWindow(wx.Frame):
                
                self.list = []
                
-               self.SetDropTarget(dropTarget.FileDropTarget(self.OnDropFiles, meshLoader.loadSupportedExtensions()))
+               self.SetDropTarget(dropTarget.FileDropTarget(self.OnDropFiles, meshLoader.loadSupportedExtensions() + ['.g', '.gcode']))
                
                wx.EVT_CLOSE(self, self.OnClose)
                self.panel = wx.Panel(self, -1)