chiark / gitweb /
Merge pull request #601 from CapnBry/reloadscene
authornallath <nallath@gmail.com>
Tue, 4 Mar 2014 10:16:46 +0000 (11:16 +0100)
committernallath <nallath@gmail.com>
Tue, 4 Mar 2014 10:16:46 +0000 (11:16 +0100)
Add "Reload platform" to refresh all the objects on the platform from their files

Cura/gui/mainWindow.py
Cura/gui/sceneView.py

index 66ed2b371211713b23dd1f537547c7c472375d0c..d193bd4692a846ffb0c103c0d8f3421b0629bbba 100644 (file)
@@ -66,6 +66,8 @@ class mainWindow(wx.Frame):
                self.Bind(wx.EVT_MENU, lambda e: self.scene.showLoadModel(), i)
                i = self.fileMenu.Append(-1, _("Save model...\tCTRL+S"))
                self.Bind(wx.EVT_MENU, lambda e: self.scene.showSaveModel(), i)
+               i = self.fileMenu.Append(-1, _("Reload platform\tF5"))
+               self.Bind(wx.EVT_MENU, lambda e: self.scene.reloadScene(e), i)
                i = self.fileMenu.Append(-1, _("Clear platform"))
                self.Bind(wx.EVT_MENU, lambda e: self.scene.OnDeleteAll(e), i)
 
index 3dccc2bbe39504613f8f607747fcfbf5ef29ef20..ea425f5bed2bad8af68bc5fee70c00fb23656da6 100644 (file)
@@ -191,6 +191,14 @@ class SceneView(openglGui.glGuiPanel):
                                self._animView = openglGui.animation(self, self._viewTarget.copy(), numpy.array([0,0,0], numpy.float32), 0.5)
                                self._animZoom = openglGui.animation(self, self._zoom, newZoom, 0.5)
 
+       def reloadScene(self, e):
+               # Copy the list before DeleteAll clears it
+               fileList = []
+               for obj in self._scene.objects():
+                       fileList.append(obj.getOriginFilename())
+               self.OnDeleteAll(None)
+               self.loadScene(fileList)
+
        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)
@@ -777,6 +785,7 @@ class SceneView(openglGui.glGuiPanel):
                                                self.Bind(wx.EVT_MENU, self.OnMergeObjects, menu.Append(-1, _("Dual extrusion merge")))
                                        if len(self._scene.objects()) > 0:
                                                self.Bind(wx.EVT_MENU, self.OnDeleteAll, menu.Append(-1, _("Delete all objects")))
+                                               self.Bind(wx.EVT_MENU, self.reloadScene, menu.Append(-1, _("Reload all objects")))
                                        if menu.MenuItemCount > 0:
                                                self.PopupMenu(menu)
                                        menu.Destroy()