From 4ff63798c8af71978858607866300e64e0492f9d Mon Sep 17 00:00:00 2001 From: alfrix Date: Mon, 16 May 2022 14:52:51 -0300 Subject: [PATCH] job_status: ask for confirmation, and show saved offset --- panels/job_status.py | 52 +++++++++++++++++++++++++++++++++++++------- styles/base.css | 1 + 2 files changed, 45 insertions(+), 8 deletions(-) diff --git a/panels/job_status.py b/panels/job_status.py index 439b2f39..907e9539 100644 --- a/panels/job_status.py +++ b/panels/job_status.py @@ -385,16 +385,52 @@ class JobStatusPanel(ScreenPanel): self.buttons['pause'].connect("clicked", self.pause) self.buttons['restart'].connect("clicked", self.restart) self.buttons['resume'].connect("clicked", self.resume) - self.buttons['save_offset_probe'].connect("clicked", self.save_offset_probe) - self.buttons['save_offset_endstop'].connect("clicked", self.save_offset_endstop) + self.buttons['save_offset_probe'].connect("clicked", self.save_offset, "probe") + self.buttons['save_offset_endstop'].connect("clicked", self.save_offset, "endstop") - def save_offset_probe(self, widget): - self._screen._ws.klippy.gcode_script("Z_OFFSET_APPLY_PROBE") - self._screen._ws.klippy.gcode_script("SAVE_CONFIG") + def save_offset(self, widget, device): + _ = self.lang.gettext - def save_offset_endstop(self, widget): - self._screen._ws.klippy.gcode_script("Z_OFFSET_APPLY_ENDSTOP") - self._screen._ws.klippy.gcode_script("SAVE_CONFIG") + save_offset = "?" + if self._printer.config_section_exists("probe"): + saved_z_offset = float(self._screen.printer.get_config_section("probe")['z_offset']) + elif self._printer.config_section_exists("bltouch"): + saved_z_offset = float(self._screen.printer.get_config_section("bltouch")['z_offset']) + + if self.zoffset > 0: + sign = "-" + else: + sign = "+" + + if device == "probe": + label = Gtk.Label(_("Apply %s%.2f offset to Probe?") % (sign, abs(self.zoffset)) + + "\n\n" + + _("Saved offset: %s") % (saved_z_offset)) + if device == "endstop": + label = Gtk.Label(_("Apply %.2f offset to Endstop?") % (self.zoffset)) + label.set_hexpand(True) + label.set_halign(Gtk.Align.CENTER) + label.set_vexpand(True) + label.set_valign(Gtk.Align.CENTER) + label.set_line_wrap(True) + label.set_line_wrap_mode(Pango.WrapMode.WORD_CHAR) + + grid = self._gtk.HomogeneousGrid() + grid.attach(label, 0, 0, 1, 1) + buttons = [ + {"name": _("Apply"), "response": Gtk.ResponseType.APPLY}, + {"name": _("Cancel"), "response": Gtk.ResponseType.CANCEL} + ] + self._gtk.Dialog(self._screen, buttons, grid, self.save_confirm, device) + + def save_confirm(self, widget, response_id, device): + if response_id == Gtk.ResponseType.APPLY: + if device == "probe": + self._screen._ws.klippy.gcode_script("Z_OFFSET_APPLY_PROBE") + if device == "endstop": + self._screen._ws.klippy.gcode_script("Z_OFFSET_APPLY_ENDSTOP") + self._screen._ws.klippy.gcode_script("SAVE_CONFIG") + widget.destroy() def restart(self, widget): if self.filename != "none": diff --git a/styles/base.css b/styles/base.css index 13cd4330..f1b589df 100644 --- a/styles/base.css +++ b/styles/base.css @@ -361,6 +361,7 @@ trough { margin-right: .25em; } .printing-info button { + margin: .15em; background-color: rgba(0, 0, 0, 0.1); border-radius: .5em; }