From 45ff62465105653b312a9ae05290afaadf729d25 Mon Sep 17 00:00:00 2001 From: Daid Date: Fri, 17 May 2013 11:51:47 +0200 Subject: Fix the expert window on MacOS. Remove the exception if the GCode loader is interrupted because of new GCode. --- Cura/gui/expertConfig.py | 4 ++-- Cura/gui/mainWindow.py | 5 ++--- Cura/gui/sceneView.py | 2 ++ 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Cura/gui/expertConfig.py b/Cura/gui/expertConfig.py index 624be95413..e82ae710b7 100644 --- a/Cura/gui/expertConfig.py +++ b/Cura/gui/expertConfig.py @@ -22,11 +22,11 @@ class expertConfigWindow(wx.Dialog): if s.checkConditions(): configBase.SettingRow(p, s.getName()) - def __init__(self): + def __init__(self, callback): super(expertConfigWindow, self).__init__(None, title='Expert config', style=wx.DEFAULT_DIALOG_STYLE) wx.EVT_CLOSE(self, self.OnClose) - self.panel = configBase.configPanelBase(self) + self.panel = configBase.configPanelBase(self, callback) left, right, main = self.panel.CreateConfigPanel(self) self._addSettingsToPanels('expert', left, right) diff --git a/Cura/gui/mainWindow.py b/Cura/gui/mainWindow.py index d6005c3cd7..8a35c2f776 100644 --- a/Cura/gui/mainWindow.py +++ b/Cura/gui/mainWindow.py @@ -388,10 +388,9 @@ class mainWindow(wx.Frame): configWizard.headOffsetWizard() def OnExpertOpen(self, e): - ecw = expertConfig.expertConfigWindow() + ecw = expertConfig.expertConfigWindow(lambda : self.scene.sceneUpdated()) ecw.Centre() - ecw.ShowModal() - self.scene.sceneUpdated() + ecw.Show() def OnMinecraftImport(self, e): mi = minecraftImport.minecraftImportWindow(self) diff --git a/Cura/gui/sceneView.py b/Cura/gui/sceneView.py index b060e7c0a8..f69657438a 100644 --- a/Cura/gui/sceneView.py +++ b/Cura/gui/sceneView.py @@ -443,6 +443,8 @@ class SceneView(openglGui.glGuiPanel): return True if len(self._gcode.layerList) % 5 == 0: time.sleep(0.1) + if self._gcode is None: + return True if self.layerSelect.getValue() == self.layerSelect.getMaxValue(): self.layerSelect.setRange(1, len(self._gcode.layerList) - 1) self.layerSelect.setValue(self.layerSelect.getMaxValue()) -- cgit v1.2.3 From 9b26b5b9330fd5fa1462e9d1792e3c9f8bc589ad Mon Sep 17 00:00:00 2001 From: Daid Date: Fri, 17 May 2013 14:01:22 +0200 Subject: Detect internal SDCard readers. --- Cura/util/removableStorage.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/Cura/util/removableStorage.py b/Cura/util/removableStorage.py index daf5dbb5e7..1eb807d9a0 100644 --- a/Cura/util/removableStorage.py +++ b/Cura/util/removableStorage.py @@ -88,6 +88,21 @@ def getPossibleSDcardDrives(): if 'mount_point' in vol: volume = vol['mount_point'] drives.append((os.path.basename(volume), volume, os.path.basename(volume))) + + p = subprocess.Popen(['system_profiler', 'SPCardReaderDataType', '-xml'], stdout=subprocess.PIPE) + xml = ElementTree.fromstring(p.communicate()[0]) + p.wait() + + xml = _parseStupidPListXML(xml) + for entry in xml: + if '_items' in entry: + for item in entry['_items']: + for dev in item['_items']: + if 'removable_media' in dev and dev['removable_media'] == 'yes' and 'volumes' in dev and len(dev['volumes']) > 0: + for vol in dev['volumes']: + if 'mount_point' in vol: + volume = vol['mount_point'] + drives.append((os.path.basename(volume), volume, os.path.basename(volume))) else: for volume in glob.glob('/media/*'): drives.append((os.path.basename(volume), volume, os.path.basename(volume))) -- cgit v1.2.3