chiark / gitweb /
Trigger slicing when updating one-at-a-time mode.
[cura.git] / Cura / gui / mainWindow.py
index 68c28c2bfe16352113e1309eebc061ab18605e8b..95903813f297069dc4b4f3d349cc420e5bb8ecd4 100644 (file)
@@ -122,6 +122,17 @@ class mainWindow(wx.Frame):
 
                i = toolsMenu.Append(-1, _("Copy profile to clipboard"))
                self.Bind(wx.EVT_MENU, self.onCopyProfileClipboard,i)
+
+               toolsMenu.AppendSeparator()
+               self.allAtOnceItem = toolsMenu.Append(-1, _("Print all at once"), kind=wx.ITEM_RADIO)
+               self.Bind(wx.EVT_MENU, self.onOneAtATimeSwitch, self.allAtOnceItem)
+               self.oneAtATime = toolsMenu.Append(-1, _("Print one at a time"), kind=wx.ITEM_RADIO)
+               self.Bind(wx.EVT_MENU, self.onOneAtATimeSwitch, self.oneAtATime)
+               if profile.getPreference('oneAtATime') == 'True':
+                       self.oneAtATime.Check(True)
+               else:
+                       self.allAtOnceItem.Check(True)
+
                self.menubar.Append(toolsMenu, _("Tools"))
 
                #Machine menu for machine configuration/tooling
@@ -140,7 +151,7 @@ class mainWindow(wx.Frame):
                self.Bind(wx.EVT_MENU, self.OnNormalSwitch, i)
                expertMenu.AppendSeparator()
 
-               i = expertMenu.Append(-1, _("Open expert settings..."))
+               i = expertMenu.Append(-1, _("Open expert settings...\tCTRL+E"))
                self.normalModeOnlyItems.append(i)
                self.Bind(wx.EVT_MENU, self.OnExpertOpen, i)
                expertMenu.AppendSeparator()
@@ -245,6 +256,7 @@ class mainWindow(wx.Frame):
                        self.Centre()
 
                self.updateSliceMode()
+               self.scene.SetFocus()
 
        def onTimer(self, e):
                #Check if there is something in the clipboard
@@ -310,16 +322,25 @@ class mainWindow(wx.Frame):
                        self.headOffsetWizardMenuItem.Enable(False)
                self.scene.updateProfileToControls()
 
+       def onOneAtATimeSwitch(self, e):
+               profile.putPreference('oneAtATime', self.oneAtATime.IsChecked())
+               if self.oneAtATime.IsChecked() and profile.getMachineSettingFloat('extruder_head_size_height') < 1:
+                       wx.MessageBox(_('For "One at a time" printing, you need to have entered the correct head size and gantry height in the machine settings'), _('One at a time warning'), wx.OK | wx.ICON_WARNING)
+               self.scene.updateProfileToControls()
+               self.scene.sceneUpdated()
+
        def OnPreferences(self, e):
                prefDialog = preferencesDialog.preferencesDialog(self)
                prefDialog.Centre()
                prefDialog.Show()
+               prefDialog.Raise()
                wx.CallAfter(prefDialog.Show)
 
        def OnMachineSettings(self, e):
                prefDialog = preferencesDialog.machineSettingsDialog(self)
                prefDialog.Centre()
                prefDialog.Show()
+               prefDialog.Raise()
 
        def OnDropFiles(self, files):
                if len(files) > 0:
@@ -394,8 +415,9 @@ class mainWindow(wx.Frame):
                        self.Bind(wx.EVT_MENU, lambda e: self.OnSelectMachine(e.GetId() - 0x1000), i)
 
                self.machineMenu.AppendSeparator()
-               i = self.machineMenu.Append(-1, _("Add new machine..."))
-               self.Bind(wx.EVT_MENU, self.OnAddNewMachine, i)
+
+               i = self.machineMenu.Append(-1, _("Machine settings..."))
+               self.Bind(wx.EVT_MENU, self.OnMachineSettings, i)
 
                #Add tools for machines.
                self.machineMenu.AppendSeparator()
@@ -480,14 +502,6 @@ class mainWindow(wx.Frame):
                self.Show()
                self.reloadSettingPanels()
 
-       def OnAddNewMachine(self, e):
-               self.Hide()
-               profile.setActiveMachine(profile.getMachineCount())
-               configWizard.configWizard(True)
-               self.Show()
-               self.reloadSettingPanels()
-               self.updateMachineMenu()
-
        def OnSelectMachine(self, index):
                profile.setActiveMachine(index)
                self.reloadSettingPanels()