From: hg42@gmx.net Date: Mon, 16 Sep 2013 21:24:58 +0000 (+0200) Subject: allow dropping gcode files X-Git-Tag: 13.10~67^2 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=8a37f895f7a66dffff2640b62a3a81bb8482e6ef;p=cura.git allow dropping gcode files --- diff --git a/Cura/gui/mainWindow.py b/Cura/gui/mainWindow.py index cd656e74..ab40a40e 100644 --- a/Cura/gui/mainWindow.py +++ b/Cura/gui/mainWindow.py @@ -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) diff --git a/Cura/gui/sceneView.py b/Cura/gui/sceneView.py index 916eaa02..60c4f633 100644 --- a/Cura/gui/sceneView.py +++ b/Cura/gui/sceneView.py @@ -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: diff --git a/Cura/gui/tools/batchRun.py b/Cura/gui/tools/batchRun.py index ddd8894b..14c1e562 100644 --- a/Cura/gui/tools/batchRun.py +++ b/Cura/gui/tools/batchRun.py @@ -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)