From: daid303 Date: Fri, 29 Mar 2013 09:16:21 +0000 (+0100) Subject: Some code cleanup, and move the load dialog to the scene view. X-Git-Tag: 13.05~145 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=4635e7506776a28c6f2a0c28cbfae8253688c2b2;p=cura.git Some code cleanup, and move the load dialog to the scene view. --- diff --git a/Cura/gui/mainWindow.py b/Cura/gui/mainWindow.py index fa32bf22..1b7beaf3 100644 --- a/Cura/gui/mainWindow.py +++ b/Cura/gui/mainWindow.py @@ -53,9 +53,9 @@ class mainWindow(wx.Frame): self.menubar = wx.MenuBar() self.fileMenu = wx.Menu() i = self.fileMenu.Append(-1, 'Load model file...\tCTRL+L') - self.Bind(wx.EVT_MENU, lambda e: self._showModelLoadDialog(1), i) + self.Bind(wx.EVT_MENU, lambda e: self.scene.ShowLoadModel(), i) i = self.fileMenu.Append(-1, 'Print...\tCTRL+P') - self.Bind(wx.EVT_MENU, self.OnPrint, i) + self.Bind(wx.EVT_MENU, lambda e: self.scene.ShowPrintWindow(), i) self.fileMenu.AppendSeparator() i = self.fileMenu.Append(-1, 'Open Profile...') @@ -144,10 +144,8 @@ class mainWindow(wx.Frame): if profile.getPreference('lastFile') != '': self.filelist = profile.getPreference('lastFile').split(';') - self.SetTitle('Cura - %s - %s' % (version.getVersion(), self.filelist[-1])) else: self.filelist = [] - self.progressPanelList = [] self.splitter = wx.SplitterWindow(self, style = wx.SP_3D | wx.SP_LIVE_UPDATE) self.leftPane = wx.Panel(self.splitter, style=wx.BORDER_NONE) @@ -166,9 +164,6 @@ class mainWindow(wx.Frame): #Preview window self.scene = sceneView.SceneView(self.rightPane) - #Also bind double clicking the 3D preview to load an STL file. - #self.preview3d.glCanvas.Bind(wx.EVT_LEFT_DCLICK, lambda e: self._showModelLoadDialog(1), self.preview3d.glCanvas) - #Main sizer, to position the preview window, buttons and tab control sizer = wx.BoxSizer() self.rightPane.SetSizer(sizer) @@ -262,55 +257,11 @@ class mainWindow(wx.Frame): prefDialog.Centre() prefDialog.Show(True) - def _showOpenDialog(self, title, wildcard = meshLoader.wildcardFilter()): - dlg=wx.FileDialog(self, title, os.path.split(profile.getPreference('lastFile'))[0], style=wx.FD_OPEN|wx.FD_FILE_MUST_EXIST) - dlg.SetWildcard(wildcard) - if dlg.ShowModal() == wx.ID_OK: - filename = dlg.GetPath() - dlg.Destroy() - if not(os.path.exists(filename)): - return False - profile.putPreference('lastFile', filename) - return filename - dlg.Destroy() - return False - - def _showModelLoadDialog(self, amount): - filelist = [] - for i in xrange(0, amount): - filelist.append(self._showOpenDialog("Open file to print")) - if filelist[-1] == False: - return - self._loadModels(filelist) - - def _loadModels(self, filelist): - self.filelist = filelist - self.SetTitle('Cura - %s - %s' % (version.getVersion(), filelist[-1])) - profile.putPreference('lastFile', ';'.join(self.filelist)) - self.scene.loadScene(self.filelist) - #self.preview3d.setViewMode("Normal") - - # Update the Model MRU - for idx in xrange(0, len(self.filelist)): - self.addToModelMRU(self.filelist[idx]) - def OnDropFiles(self, files): profile.putProfileSetting('model_matrix', '1,0,0,0,1,0,0,0,1') profile.setPluginConfig([]) self.updateProfileToControls() - self._loadModels(files) - - def OnLoadModel(self, e): - self._showModelLoadDialog(1) - - def OnLoadModel2(self, e): - self._showModelLoadDialog(2) - - def OnLoadModel3(self, e): - self._showModelLoadDialog(3) - - def OnLoadModel4(self, e): - self._showModelLoadDialog(4) + self.scene.loadScene(files) def OnPrint(self, e): if len(self.filelist) < 1: @@ -331,7 +282,7 @@ class mainWindow(wx.Frame): self.config.Flush() # Load Model filelist = [ path ] - self._loadModels(filelist) + self.scene.loadScene(filelist) def addToModelMRU(self, file): self.modelFileHistory.AddFileToHistory(file) @@ -357,16 +308,6 @@ class mainWindow(wx.Frame): self.profileFileHistory.Save(self.config) self.config.Flush() - def removeSliceProgress(self, spp): - self.progressPanelList.remove(spp) - newSize = self.GetSize() - newSize.IncBy(0, -spp.GetSize().GetHeight()) - if newSize.GetWidth() < wx.GetDisplaySize()[0]: - self.SetSize(newSize) - spp.Show(False) - self.sizer.Detach(spp) - self.sizer.Layout() - def updateProfileToControls(self): self.scene.updateProfileToControls() self.normalSettingsPanel.updateProfileToControls() diff --git a/Cura/gui/sceneView.py b/Cura/gui/sceneView.py index 8b68b6db..b7190752 100644 --- a/Cura/gui/sceneView.py +++ b/Cura/gui/sceneView.py @@ -3,6 +3,7 @@ from __future__ import absolute_import import wx import numpy import time +import os import OpenGL OpenGL.ERROR_CHECKING = False @@ -59,15 +60,33 @@ class SceneView(openglGui.glGuiPanel): self._platformMesh._drawOffset = numpy.array([0,0,0.5], numpy.float32) self._isSimpleMode = True self._slicer = sliceEngine.Slicer(self._updateSliceProgress) - wx.EVT_IDLE(self, self.OnIdle) - self.updateProfileToControls() self._sceneUpdateTimer = wx.Timer(self) self.Bind(wx.EVT_TIMER, lambda e : self._slicer.runSlicer(self._scene), self._sceneUpdateTimer) - self.openFileButton = openglGui.glButton(self, 4, 'Load', (0,0), lambda : self.GetParent().GetParent().GetParent()._showModelLoadDialog(1)) - self.printButton = openglGui.glButton(self, 6, 'Print', (1,0), 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.setDisabled(True) + self.updateProfileToControls() + wx.EVT_IDLE(self, self.OnIdle) + + def ShowLoadModel(self): + dlg=wx.FileDialog(self, 'Open 3D model', os.path.split(profile.getPreference('lastFile'))[0], style=wx.FD_OPEN|wx.FD_FILE_MUST_EXIST) + dlg.SetWildcard(meshLoader.wildcardFilter()) + if dlg.ShowModal() != wx.ID_OK: + dlg.Destroy() + return + filename = dlg.GetPath() + dlg.Destroy() + if not(os.path.exists(filename)): + return False + profile.putPreference('lastFile', filename) + self.GetParent().GetParent().GetParent().addToModelMRU(filename) + self.loadScene([filename]) + + def ShowPrintWindow(self): + pass + def OnIdle(self, e): if self._animView is not None or self._animZoom is not None: self.Refresh()