From: daid Date: Thu, 26 Sep 2013 12:35:42 +0000 (+0200) Subject: Add option to add/remove machines from machine setting menu. X-Git-Tag: 13.10~48 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=6452a463524fb80a43d9a1e4d8c760c897e82115;p=cura.git Add option to add/remove machines from machine setting menu. --- diff --git a/Cura/gui/preferencesDialog.py b/Cura/gui/preferencesDialog.py index 6eb312df..fd587892 100644 --- a/Cura/gui/preferencesDialog.py +++ b/Cura/gui/preferencesDialog.py @@ -3,6 +3,7 @@ __copyright__ = "Copyright (C) 2013 David Braam - Released under terms of the AG import wx +from Cura.gui import configWizard from Cura.gui import configBase from Cura.util import machineCom from Cura.util import profile @@ -98,13 +99,54 @@ class machineSettingsDialog(wx.Dialog): self.nb.SetSelection(int(profile.getPreferenceFloat('active_machine'))) - self.okButton = wx.Button(self.panel, -1, 'Ok') - self.panel.GetSizer().Add(self.okButton, flag=wx.ALL, border=5) + self.buttonPanel = wx.Panel(self.panel) + self.panel.GetSizer().Add(self.buttonPanel) + + self.buttonPanel.SetSizer(wx.BoxSizer(wx.HORIZONTAL)) + self.okButton = wx.Button(self.buttonPanel, -1, 'Ok') self.okButton.Bind(wx.EVT_BUTTON, lambda e: self.Close()) + self.buttonPanel.GetSizer().Add(self.okButton, flag=wx.ALL, border=5) + + self.addButton = wx.Button(self.buttonPanel, -1, 'Add new machine') + self.addButton.Bind(wx.EVT_BUTTON, self.OnAddMachine) + self.buttonPanel.GetSizer().Add(self.addButton, flag=wx.ALL, border=5) + + self.remButton = wx.Button(self.buttonPanel, -1, 'Remove machine') + self.remButton.Bind(wx.EVT_BUTTON, self.OnRemoveMachine) + self.buttonPanel.GetSizer().Add(self.remButton, flag=wx.ALL, border=5) main.Fit() self.Fit() + def OnAddMachine(self, e): + self.Hide() + self.parent.Hide() + profile.setActiveMachine(profile.getMachineCount()) + configWizard.configWizard(True) + self.parent.Show() + self.parent.reloadSettingPanels() + self.parent.updateMachineMenu() + + prefDialog = machineSettingsDialog(self.parent) + prefDialog.Centre() + prefDialog.Show() + wx.CallAfter(self.Close) + + def OnRemoveMachine(self, e): + if profile.getMachineCount() < 2: + wx.MessageBox(_("Cannot remove the last machine configuration in Cura"), _("Machine remove error"), wx.OK | wx.ICON_ERROR) + return + + self.Hide() + profile.removeMachine(self.nb.GetSelection()) + self.parent.reloadSettingPanels() + self.parent.updateMachineMenu() + + prefDialog = machineSettingsDialog(self.parent) + prefDialog.Centre() + prefDialog.Show() + wx.CallAfter(self.Close) + def OnClose(self, e): self.parent.reloadSettingPanels() self.Destroy() diff --git a/Cura/util/profile.py b/Cura/util/profile.py index 2c57493f..160f7d19 100644 --- a/Cura/util/profile.py +++ b/Cura/util/profile.py @@ -753,6 +753,19 @@ def setActiveMachine(index): _selectedMachineIndex = index putPreference('active_machine', _selectedMachineIndex) +def removeMachine(index): + global _selectedMachineIndex + global settingsList + if getMachineCount() < 2: + return + for n in xrange(index, getMachineCount()): + for setting in settingsList: + if setting.isMachineSetting(): + setting.setValue(setting.getValue(n+1), n) + + if _selectedMachineIndex >= index: + setActiveMachine(getMachineCount() - 1) + ## Temp overrides for multi-extruder slicing and the project planner. tempOverride = {} def setTempOverride(name, value):