chiark / gitweb /
Merge tag '15.01-RC7' into upstream
[cura.git] / Cura / gui / mainWindow.py
index cc44fb235a6e454291e935f6f45a137551007653..9808ae25658adc38085edd91a47e235cfea18192 100644 (file)
@@ -33,7 +33,7 @@ except:
 
 class mainWindow(wx.Frame):
        def __init__(self):
-               super(mainWindow, self).__init__(None, title='Cura - ' + version.getVersion())
+               super(mainWindow, self).__init__(None, title=_('Cura - ') + version.getVersion())
 
                wx.EVT_CLOSE(self, self.OnClose)
 
@@ -190,13 +190,13 @@ class mainWindow(wx.Frame):
 
                helpMenu = wx.Menu()
                i = helpMenu.Append(-1, _("Online documentation..."))
-               self.Bind(wx.EVT_MENU, lambda e: webbrowser.open('http://daid.github.com/Cura'), i)
+               self.Bind(wx.EVT_MENU, lambda e: webbrowser.open('http://lulzbot.com/cura'), i)
                i = helpMenu.Append(-1, _("Report a problem..."))
-               self.Bind(wx.EVT_MENU, lambda e: webbrowser.open('https://github.com/daid/Cura/issues'), i)
-               i = helpMenu.Append(-1, _("Check for update..."))
-               self.Bind(wx.EVT_MENU, self.OnCheckForUpdate, i)
-               i = helpMenu.Append(-1, _("Open YouMagine website..."))
-               self.Bind(wx.EVT_MENU, lambda e: webbrowser.open('https://www.youmagine.com/'), i)
+               self.Bind(wx.EVT_MENU, lambda e: webbrowser.open('https://github.com/alephobjects/Cura/issues'), i)
+               #i = helpMenu.Append(-1, _("Check for update..."))
+               #self.Bind(wx.EVT_MENU, self.OnCheckForUpdate, i)
+               #i = helpMenu.Append(-1, _("Open YouMagine website..."))
+               #self.Bind(wx.EVT_MENU, lambda e: webbrowser.open('https://www.youmagine.com/'), i)
                i = helpMenu.Append(-1, _("About Cura..."))
                self.Bind(wx.EVT_MENU, self.OnAbout, i)
                self.menubar.Append(helpMenu, _("Help"))
@@ -333,13 +333,13 @@ class mainWindow(wx.Frame):
                                                print profileString
                                                self.lastTriedClipboard = profileString
                                                profile.setProfileFromString(profileString)
-                                               self.scene.notification.message("Loaded new profile from clipboard.")
+                                               self.scene.notification.message(_("Loaded new profile from clipboard."))
                                                self.updateProfileToAllControls()
                except:
                        print "Unable to read from clipboard"
 
 
-       def updateSliceMode(self):
+       def updateSliceMode(self, changedMode = True):
                isSimple = profile.getPreference('startMode') == 'Simple'
 
                self.normalSettingsPanel.Show(not isSimple)
@@ -355,8 +355,10 @@ class mainWindow(wx.Frame):
 
                # Set splitter sash position & size
                if isSimple:
-                       # Save normal mode sash
-                       self.normalSashPos = self.splitter.GetSashPosition()
+                       # Save normal mode sash (only if we changed mode from normal
+                       # to simple)
+                       if changedMode:
+                               self.normalSashPos = self.splitter.GetSashPosition()
 
                        # Change location of sash to width of quick mode pane
                        (width, height) = self.simpleSettingsPanel.GetSizer().GetSize()
@@ -365,13 +367,19 @@ class mainWindow(wx.Frame):
                        # Disable sash
                        self.splitter.SetSashSize(0)
                else:
-                       self.splitter.SetSashPosition(self.normalSashPos, True)
+                       # 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)
-               if profile.getMachineSetting('machine_type').startswith('ultimaker2'):
+               if profile.getMachineSetting('machine_type').startswith('ultimaker2') or \
+                  profile.getMachineSetting('machine_type').startswith('lulzbot_'):
                        self.bedLevelWizardMenuItem.Enable(False)
                        self.headOffsetWizardMenuItem.Enable(False)
+               else:
+                       self.bedLevelWizardMenuItem.Enable(True)
+                       self.headOffsetWizardMenuItem.Enable(False)
                if int(profile.getMachineSetting('extruder_amount')) < 2:
                        self.headOffsetWizardMenuItem.Enable(False)
                self.scene.updateProfileToControls()
@@ -390,7 +398,6 @@ class mainWindow(wx.Frame):
                prefDialog.Centre()
                prefDialog.Show()
                prefDialog.Raise()
-               wx.CallAfter(prefDialog.Show)
 
        def OnMachineSettings(self, e):
                prefDialog = preferencesDialog.machineSettingsDialog(self)
@@ -443,7 +450,7 @@ class mainWindow(wx.Frame):
                self.normalSettingsPanel.updateProfileToControls()
                self.simpleSettingsPanel.updateProfileToControls()
 
-       def reloadSettingPanels(self):
+       def reloadSettingPanels(self, changedSliceMode = False):
                self.leftSizer.Detach(self.simpleSettingsPanel)
                self.leftSizer.Detach(self.normalSettingsPanel)
                self.simpleSettingsPanel.Destroy()
@@ -452,7 +459,7 @@ class mainWindow(wx.Frame):
                self.normalSettingsPanel = normalSettingsPanel(self.leftPane, lambda : self.scene.sceneUpdated())
                self.leftSizer.Add(self.simpleSettingsPanel, 1)
                self.leftSizer.Add(self.normalSettingsPanel, 1, wx.EXPAND)
-               self.updateSliceMode()
+               self.updateSliceMode(changedSliceMode)
                self.updateProfileToAllControls()
 
        def updateMachineMenu(self):
@@ -575,14 +582,16 @@ class mainWindow(wx.Frame):
 
        def OnAddNewMachine(self, e):
                self.Hide()
+               wasSimple = profile.getPreference('startMode') == 'Simple'
                configWizard.ConfigWizard(True)
+               isSimple = profile.getPreference('startMode') == 'Simple'
                self.Show()
-               self.reloadSettingPanels()
+               self.reloadSettingPanels(isSimple != wasSimple)
                self.updateMachineMenu()
 
        def OnSelectMachine(self, index):
                profile.setActiveMachine(index)
-               self.reloadSettingPanels()
+               self.reloadSettingPanels(False)
 
        def OnBedLevelWizard(self, e):
                configWizard.bedLevelWizard()
@@ -638,9 +647,10 @@ class mainWindow(wx.Frame):
                        wx.MessageBox(_("You are running the latest version of Cura!"), _("Awesome!"), wx.ICON_INFORMATION)
 
        def OnAbout(self, e):
-               aboutBox = aboutWindow.aboutWindow()
+               aboutBox = aboutWindow.aboutWindow(self)
                aboutBox.Centre()
                aboutBox.Show()
+               aboutBox.Raise()
 
        def OnClose(self, e):
                profile.saveProfile(profile.getDefaultProfilePath(), True)
@@ -664,7 +674,7 @@ class mainWindow(wx.Frame):
                #HACK: Set the paint function of the glCanvas to nothing so it won't keep refreshing. Which can keep wxWidgets from quiting.
                print "Closing down"
                self.scene.OnPaint = lambda e : e
-               self.scene._engine.cleanup()
+               self.scene.cleanup()
                self.Destroy()
 
        def OnQuit(self, e):
@@ -697,7 +707,7 @@ class normalSettingsPanel(configBase.configPanelBase):
                        self.alterationPanel = None
                else:
                        self.alterationPanel = alterationPanel.alterationPanel(self.nb, callback)
-                       self.nb.AddPage(self.alterationPanel, "Start/End-GCode")
+                       self.nb.AddPage(self.alterationPanel, _("Start/End-GCode"))
 
                self.Bind(wx.EVT_SIZE, self.OnSize)