From 925741d41a54cc5e46d0c2f18a349782d62122c4 Mon Sep 17 00:00:00 2001 From: daid303 Date: Fri, 31 May 2013 10:07:54 +0200 Subject: [PATCH] Allow load of multiple model files at once. --- Cura/gui/sceneView.py | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/Cura/gui/sceneView.py b/Cura/gui/sceneView.py index 4fa7d418..bb7b7ad6 100644 --- a/Cura/gui/sceneView.py +++ b/Cura/gui/sceneView.py @@ -114,19 +114,23 @@ class SceneView(openglGui.glGuiPanel): 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) + 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) dlg.SetWildcard(meshLoader.loadWildcardFilter() + "|GCode file (*.gcode)|*.g;*.gcode;*.G;*.GCODE") if dlg.ShowModal() != wx.ID_OK: dlg.Destroy() return - filename = dlg.GetPath() + filenames = dlg.GetPaths() dlg.Destroy() - if not(os.path.exists(filename)): + if len(filenames) < 1: return False - profile.putPreference('lastFile', filename) - self.GetParent().GetParent().GetParent().addToModelMRU(filename) - ext = filename[filename.rfind('.')+1:].upper() - if ext == 'G' or ext == 'GCODE': + 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: @@ -135,7 +139,7 @@ class SceneView(openglGui.glGuiPanel): self._gcodeVBOs = [] self._gcode = gcodeInterpreter.gcode() self._gcode.progressCallback = self._gcodeLoadCallback - self._thread = threading.Thread(target=self._loadGCode, args=(filename,)) + self._thread = threading.Thread(target=self._loadGCode, args=(gcodeFilename,)) self._thread.daemon = True self._thread.start() self.printButton.setBottomText('') @@ -146,7 +150,7 @@ class SceneView(openglGui.glGuiPanel): if self.viewSelection.getValue() == 4: self.viewSelection.setValue(0) self.OnViewChange() - self.loadScene([filename]) + self.loadScene(filenames) def showSaveModel(self): if len(self._scene.objects()) < 1: -- 2.30.2