chiark / gitweb /
Save & restore main window position
authorsmorloc <smorloc@gmail.com>
Thu, 17 Jan 2013 05:44:21 +0000 (00:44 -0500)
committersmorloc <smorloc@gmail.com>
Thu, 17 Jan 2013 05:44:21 +0000 (00:44 -0500)
Cura/gui/mainWindow.py

index 54f05e55f23b7f1d74a3be6125945e0bcb092f2d..72d04d6f78615370562ccc85a68d7722ae5c6e79 100644 (file)
@@ -208,17 +208,25 @@ class mainWindow(wx.Frame):
                self.normalSettingsPanel.Show(False)
                self.updateSliceMode()
 
-               if wx.Display().GetClientArea().GetWidth() < self.GetSize().GetWidth():
-                       f = self.GetSize().GetWidth() - wx.Display().GetClientArea().GetWidth()
-                       self.preview3d.SetMinSize(self.preview3d.GetMinSize().DecBy(f, 0))
-                       self.Fit()
-               self.preview3d.Fit()
-               #self.SetMinSize(self.GetSize())
-
+               # Set default window size & position
+               self.SetSize((wx.Display().GetClientArea().GetWidth()/2,wx.Display().GetClientArea().GetHeight()/2))
                self.Centre()
-               self.Show(True)
 
-               self.Centre()
+               # Restore the window position, size & state from the preferences file
+               try:
+                       if profile.getPreference('window_maximized') == 'True':
+                               self.Maximize(True)
+                       else:
+                               posx = int(profile.getPreference('window_pos_x'))
+                               posy = int(profile.getPreference('window_pos_y'))
+                               width = int(profile.getPreference('window_width'))
+                               height = int(profile.getPreference('window_height'))
+                               self.SetPosition((posx,posy))
+                               self.SetSize((width,height))
+               except:
+                       pass
+                       
+               self.Show(True)
 
        def updateSliceMode(self):
                isSimple = profile.getPreference('startMode') == 'Simple'
@@ -241,7 +249,6 @@ class mainWindow(wx.Frame):
                self.normalSettingsPanel.Layout()
                self.simpleSettingsPanel.Layout()
                self.GetSizer().Layout()
-               self.Fit()
                self.Refresh()
 
        def OnPreferences(self, e):
@@ -478,6 +485,17 @@ class mainWindow(wx.Frame):
 
        def OnClose(self, e):
                profile.saveGlobalProfile(profile.getDefaultProfilePath())
+
+               # Save the window position, size & state from the preferences file
+               profile.putPreference('window_maximized', self.IsMaximized())
+               if not self.IsMaximized():
+                       (posx, posy) = self.GetPosition()
+                       profile.putPreference('window_pos_x', posx)
+                       profile.putPreference('window_pos_y', posy)
+                       (width, height) = self.GetSize()
+                       profile.putPreference('window_width', width)
+                       profile.putPreference('window_height', height)
+                       
                self.Destroy()
 
        def OnQuit(self, e):