chiark / gitweb /
Some code cleanup, and move the load dialog to the scene view.
authordaid303 <daid303@gmail.com>
Fri, 29 Mar 2013 09:16:21 +0000 (10:16 +0100)
committerdaid303 <daid303@gmail.com>
Fri, 29 Mar 2013 09:16:21 +0000 (10:16 +0100)
Cura/gui/mainWindow.py
Cura/gui/sceneView.py

index fa32bf223efc985275dbefb751f267dd13a380bd..1b7beaf39ffa94ad3000c67a4bd26f2d84c3870b 100644 (file)
@@ -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()
index 8b68b6db81325131da232ff6707e4abbed2ede9d..b7190752d7b2d172e90bb25fe60d03bae0b460eb 100644 (file)
@@ -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()