chiark / gitweb /
Add "Reload platform" to refresh all the objects on the platform from their files
authorBryan Mayland <bmayland@capnbry.net>
Mon, 28 Oct 2013 18:08:38 +0000 (14:08 -0400)
committerBryan Mayland <bmayland@capnbry.net>
Mon, 28 Oct 2013 18:08:38 +0000 (14:08 -0400)
Cura/gui/mainWindow.py
Cura/gui/sceneView.py

index 75fd9dac6cc7e762bc1f1d0f4a31d786390221c6..d954b952ff71272e5196d94703ff3d4f4d1377ba 100644 (file)
@@ -57,6 +57,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 4d2d9a624db70cc475b1906f23420ae72537ef94..8f677fb8a1289c30a3305f35f2f9a4980b5db072 100644 (file)
@@ -194,6 +194,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)
@@ -687,6 +695,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()