chiark / gitweb /
Merge pull request #601 from CapnBry/reloadscene
[cura.git] / Cura / gui / mainWindow.py
index e105056a770ce6d99d0cb31ec9b192111d6ca293..d193bd4692a846ffb0c103c0d8f3421b0629bbba 100644 (file)
@@ -3,6 +3,8 @@ __copyright__ = "Copyright (C) 2013 David Braam - Released under terms of the AG
 import wx
 import os
 import webbrowser
+import sys
+
 
 from Cura.gui import configBase
 from Cura.gui import expertConfig
@@ -31,6 +33,16 @@ class mainWindow(wx.Frame):
                # allow dropping any file, restrict later
                self.SetDropTarget(dropTarget.FileDropTarget(self.OnDropFiles))
 
+               # TODO: wxWidgets 2.9.4 has a bug when NSView does not register for dragged types when wx drop target is set. It was fixed in 2.9.5
+               if sys.platform.startswith('darwin'):
+                       try:
+                               import objc
+                               nswindow = objc.objc_object(c_void_p=self.MacGetTopLevelWindowRef())
+                               view = nswindow.contentView()
+                               view.registerForDraggedTypes_([u'NSFilenamesPboardType'])
+                       except:
+                               pass
+
                self.normalModeOnlyItems = []
 
                mruFile = os.path.join(profile.getBasePath(), 'mru_filelist.ini')
@@ -54,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)
 
@@ -320,6 +334,7 @@ class mainWindow(wx.Frame):
                if int(profile.getMachineSetting('extruder_amount')) < 2:
                        self.headOffsetWizardMenuItem.Enable(False)
                self.scene.updateProfileToControls()
+               self.scene._scene.pushFree()
 
        def onOneAtATimeSwitch(self, e):
                profile.putPreference('oneAtATime', self.oneAtATime.IsChecked())