diff options
author | Guillaume Seguin <guillaume@segu.in> | 2013-06-04 12:02:32 +0400 |
---|---|---|
committer | Guillaume Seguin <guillaume@segu.in> | 2013-06-04 12:02:32 +0400 |
commit | 5279dbe4d4408db62e09e49e698889f84f9fcd84 (patch) | |
tree | 5f450a9b6316a50b61808632b97579784c8f44fe /pronsole.py | |
parent | 3930fe4b5df32a62afea18ab0403b9e46529968b (diff) | |
parent | 3946378ca0ad1e52a8df336d007301754f467f03 (diff) |
Merge branch 'experimental' of github.com:kliment/Printrun into experimental
Diffstat (limited to 'pronsole.py')
-rwxr-xr-x | pronsole.py | 66 |
1 files changed, 54 insertions, 12 deletions
diff --git a/pronsole.py b/pronsole.py index e349acf..df2e1bb 100755 --- a/pronsole.py +++ b/pronsole.py @@ -60,8 +60,22 @@ def setting_add_tooltip(func): @wraps(func) def decorator(self, *args, **kwargs): widget = func(self, *args, **kwargs) - if self.help: - widget.SetToolTipString(self.help) + helptxt = self.help or "" + sep,deftxt = "","" + if len(helptxt): + sep = "\n" + if helptxt.find("\n") >= 0: + sep = "\n\n" + if self.default is not "": + deftxt = _("Default: ") + resethelp = _("(Control-doubleclick to reset to default value)") + if len(repr(self.default)) > 10: + deftxt += "\n " + repr(self.default).strip("'") + "\n" + resethelp + else: + deftxt += repr(self.default) + " " + resethelp + helptxt += sep + deftxt + if len(helptxt): + widget.SetToolTipString(helptxt) return widget return decorator @@ -85,10 +99,18 @@ class Setting(object): raise NotImplementedError value = property(_get_value, _set_value) + def set_default(self, e): + import wx + if e.CmdDown() and e.ButtonDClick() and self.default is not "": + confirmation = wx.MessageDialog(None,_("Are you sure you want to reset the setting to the default value: {0!r} ?").format(self.default),_("Confirm set default"),wx.ICON_EXCLAMATION|wx.YES_NO|wx.NO_DEFAULT) + if confirmation.ShowModal() == wx.ID_YES: + self._set_value(self.default) + @setting_add_tooltip def get_label(self, parent): import wx widget = wx.StaticText(parent, -1, self.label or self.name) + widget.set_default = self.set_default return widget @setting_add_tooltip @@ -178,6 +200,9 @@ class BooleanSetting(wxSetting): return bool(self._value) def _set_value(self, value): self._value = value + if self.widget: + self.widget.SetValue(bool(value)) + value = property(_get_value, _set_value) def get_specific_widget(self, parent): @@ -186,6 +211,23 @@ class BooleanSetting(wxSetting): self.widget.SetValue(bool(self.value)) return self.widget +class StaticTextSetting(wxSetting): + + def __init__(self, name, label = " ", text = "", help = None, group = None): + super(StaticTextSetting, self).__init__(name, "", label, help, group) + self.text = text + + def update(self): + pass + def _get_value(self): + return "" + def _set_value(self, value): + pass + def get_specific_widget(self, parent): + import wx + self.widget = wx.StaticText(parent, -1, self.text) + return self.widget + class Settings(object): #def _temperature_alias(self): return {"pla":210, "abs":230, "off":0} #def _temperature_validate(self, v): @@ -196,16 +238,16 @@ class Settings(object): # defaults here. # the initial value determines the type self._add(StringSetting("port", "", _("Serial port"), _("Port used to communicate with printer"))) - self._add(ComboSetting("baudrate", 115200, self._baudrate_list(), _("Baud rate"), _("Communications Speed (default: 115200)"))) - self._add(SpinSetting("bedtemp_abs", 110, 0, 400, _("Bed temperature for ABS"), _("Heated Build Platform temp for ABS (default: 110 deg C)"), "Printer")) - self._add(SpinSetting("bedtemp_pla", 60, 0, 400, _("Bed temperature for PLA"), _("Heated Build Platform temp for PLA (default: 60 deg C)"), "Printer")) - self._add(SpinSetting("temperature_abs", 230, 0, 400, _("Extruder temperature for ABS"), _("Extruder temp for ABS (default: 230 deg C)"), "Printer")) - self._add(SpinSetting("temperature_pla", 185, 0, 400, _("Extruder temperature for PLA"), _("Extruder temp for PLA (default: 185 deg C)"), "Printer")) - self._add(SpinSetting("xy_feedrate", 3000, 0, 50000, _("X && Y manual feedrate"), _("Feedrate for Control Panel Moves in X and Y (default: 3000mm/min)"), "Printer")) - self._add(SpinSetting("z_feedrate", 200, 0, 50000, _("Z manual feedrate"), _("Feedrate for Control Panel Moves in Z (default: 200mm/min)"), "Printer")) - self._add(SpinSetting("e_feedrate", 100, 0, 1000, _("E manual feedrate"), _("Feedrate for Control Panel Moves in Extrusions (default: 300mm/min)"), "Printer")) - self._add(StringSetting("slicecommand", "python skeinforge/skeinforge_application/skeinforge_utilities/skeinforge_craft.py $s", _("Slice command"), _("Slice command\n default:\n python skeinforge/skeinforge_application/skeinforge_utilities/skeinforge_craft.py $s)"), "External")) - self._add(StringSetting("sliceoptscommand", "python skeinforge/skeinforge_application/skeinforge.py", _("Slicer options command"), _("Slice settings command\n default:\n python skeinforge/skeinforge_application/skeinforge.py"), "External")) + self._add(ComboSetting("baudrate", 115200, self._baudrate_list(), _("Baud rate"), _("Communications Speed"))) + self._add(SpinSetting("bedtemp_abs", 110, 0, 400, _("Bed temperature for ABS"), _("Heated Build Platform temp for ABS (deg C)"), "Printer")) + self._add(SpinSetting("bedtemp_pla", 60, 0, 400, _("Bed temperature for PLA"), _("Heated Build Platform temp for PLA (deg C)"), "Printer")) + self._add(SpinSetting("temperature_abs", 230, 0, 400, _("Extruder temperature for ABS"), _("Extruder temp for ABS (deg C)"), "Printer")) + self._add(SpinSetting("temperature_pla", 185, 0, 400, _("Extruder temperature for PLA"), _("Extruder temp for PLA (deg C)"), "Printer")) + self._add(SpinSetting("xy_feedrate", 3000, 0, 50000, _("X && Y manual feedrate"), _("Feedrate for Control Panel Moves in X and Y (mm/min)"), "Printer")) + self._add(SpinSetting("z_feedrate", 200, 0, 50000, _("Z manual feedrate"), _("Feedrate for Control Panel Moves in Z (mm/min)"), "Printer")) + self._add(SpinSetting("e_feedrate", 100, 0, 1000, _("E manual feedrate"), _("Feedrate for Control Panel Moves in Extrusions (mm/min)"), "Printer")) + self._add(StringSetting("slicecommand", "python skeinforge/skeinforge_application/skeinforge_utilities/skeinforge_craft.py $s", _("Slice command"), _("Slice command"), "External")) + self._add(StringSetting("sliceoptscommand", "python skeinforge/skeinforge_application/skeinforge.py", _("Slicer options command"), _("Slice settings command"), "External")) self._add(StringSetting("final_command", "", _("Final command"), _("Executable to run when the print is finished"), "External")) self._add(HiddenSetting("project_offset_x", 0.0)) |