chiark / gitweb /
Merge branch 'v2-toolheads' into devel
[cura.git] / Cura / gui / mainWindow.py
index 32476d36b91e3fcf7de90601317e7b9a9541bc72..38768ce1881e05198950db4e6f6cf01d90cc53ed 100644 (file)
@@ -203,6 +203,7 @@ class mainWindow(wx.Frame):
                self.SetMenuBar(self.menubar)
 
                self.splitter = wx.SplitterWindow(self, style = wx.SP_3D | wx.SP_LIVE_UPDATE)
+               self.splitter.SetMinimumPaneSize(100)
                self.leftPane = wx.Panel(self.splitter, style=wx.BORDER_NONE)
                self.rightPane = wx.Panel(self.splitter, style=wx.BORDER_NONE)
                self.splitter.Bind(wx.EVT_SPLITTER_DCLICK, lambda evt: evt.Veto())
@@ -211,7 +212,7 @@ class mainWindow(wx.Frame):
                self.scene = sceneView.SceneView(self.rightPane)
 
                ##Gui components##
-               self.simpleSettingsPanel = simpleMode.simpleModePanel(self.leftPane, self.scene.sceneUpdated)
+               self.simpleSettingsPanel = simpleMode.simpleModePanel(self.leftPane, self.simpleModeUpdated)
                self.normalSettingsPanel = normalSettingsPanel(self.leftPane, self.scene.sceneUpdated)
 
                self.leftSizer = wx.BoxSizer(wx.VERTICAL)
@@ -279,7 +280,7 @@ class mainWindow(wx.Frame):
                        self.SetSize((800,600))
                        self.Centre()
 
-               self.updateSliceMode()
+               self.updateSliceMode(False)
                self.scene.SetFocus()
                self.dialogframe = None
                if Publisher is not None:
@@ -346,6 +347,14 @@ class mainWindow(wx.Frame):
                        print "Unable to read from clipboard"
 
 
+       def simpleModeUpdated(self):
+               self.leftPane.Layout()
+               if profile.getPreference('startMode') == 'Simple':
+                       # Change location of sash to width of quick mode pane
+                       (width, height) = self.simpleSettingsPanel.GetSizer().GetSize()
+                       self.splitter.SetSashPosition(width, True)
+               self.scene.sceneUpdated()
+
        def updateSliceMode(self, changedMode = True):
                isSimple = profile.getPreference('startMode') == 'Simple'
 
@@ -368,8 +377,13 @@ class mainWindow(wx.Frame):
                                self.normalSashPos = self.splitter.GetSashPosition()
 
                        # Change location of sash to width of quick mode pane
+                       self.simpleSettingsPanel.Layout()
+                       self.simpleSettingsPanel.Fit()
                        (width, height) = self.simpleSettingsPanel.GetSizer().GetSize()
-                       self.splitter.SetSashPosition(width, True)
+                       if width > 0:
+                               self.splitter.SetSashPosition(width, True)
+                       else:
+                               self.splitter.SizeWindows()
 
                        # Disable sash
                        self.splitter.SetSashSize(0)
@@ -377,6 +391,7 @@ class mainWindow(wx.Frame):
                        # Only change the sash position if we changed mode from simple
                        if changedMode:
                                self.splitter.SetSashPosition(self.normalSashPos, True)
+
                        # Enabled sash
                        self.splitter.SetSashSize(4)
                self.defaultFirmwareInstallMenuItem.Enable(firmwareInstall.getDefaultFirmware() is not None)
@@ -467,8 +482,8 @@ class mainWindow(wx.Frame):
                self.leftSizer.Detach(self.normalSettingsPanel)
                self.simpleSettingsPanel.Destroy()
                self.normalSettingsPanel.Destroy()
-               self.simpleSettingsPanel = simpleMode.simpleModePanel(self.leftPane, lambda : self.scene.sceneUpdated())
-               self.normalSettingsPanel = normalSettingsPanel(self.leftPane, lambda : self.scene.sceneUpdated())
+               self.simpleSettingsPanel = simpleMode.simpleModePanel(self.leftPane, self.simpleModeUpdated)
+               self.normalSettingsPanel = normalSettingsPanel(self.leftPane, self.scene.sceneUpdated)
                self.leftSizer.Add(self.simpleSettingsPanel, 1)
                self.leftSizer.Add(self.normalSettingsPanel, 1, wx.EXPAND)
                self.updateSliceMode(changedSliceMode)