diff --git a/panels/bed_level.py b/panels/bed_level.py index 3e938439..67bb5448 100644 --- a/panels/bed_level.py +++ b/panels/bed_level.py @@ -260,7 +260,6 @@ class BedLevelPanel(ScreenPanel): def activate(self): for key, value in self.screw_dict.items(): self.buttons[key].set_label(f"{value}") - self.process_busy(self._printer.busy) def go_to_position(self, widget, position): if self._screen.printer.get_stat("toolhead", "homed_axes") != "xyz": diff --git a/panels/bed_mesh.py b/panels/bed_mesh.py index f397a9e7..bef3c9ae 100644 --- a/panels/bed_mesh.py +++ b/panels/bed_mesh.py @@ -69,7 +69,6 @@ class BedMeshPanel(ScreenPanel): self.load_meshes() with contextlib.suppress(KeyError): self.activate_mesh(self._screen.printer.get_stat("bed_mesh", "profile_name")) - self.process_busy(self._printer.busy) def activate_mesh(self, profile): if self.active_mesh is not None: diff --git a/panels/console.py b/panels/console.py index 715293dc..49b84394 100644 --- a/panels/console.py +++ b/panels/console.py @@ -28,7 +28,6 @@ class ConsolePanel(ScreenPanel): super().__init__(screen, title) self.autoscroll = True self.hidetemps = True - self._screen._ws.send_method("server.gcode_store", {"count": 100}, self.gcode_response) o1_lbl = Gtk.Label(_("Auto-scroll")) o1_lbl.set_halign(Gtk.Align.END) @@ -107,7 +106,7 @@ class ConsolePanel(ScreenPanel): def _show_keyboard(self, widget=None, event=None): self._screen.show_keyboard(entry=self.labels['entry']) - def clear(self, widget): + def clear(self, widget=None): self.labels['tb'].set_text("") def add_gcode(self, msgtype, msgtime, message): @@ -166,3 +165,7 @@ class ConsolePanel(ScreenPanel): self.add_gcode("command", time.time(), cmd) self._screen._ws.klippy.gcode_script(cmd) + + def activate(self): + self.clear() + self._screen._ws.send_method("server.gcode_store", {"count": 100}, self.gcode_response) \ No newline at end of file diff --git a/panels/extrude.py b/panels/extrude.py index c45abfa4..8ab2f24e 100644 --- a/panels/extrude.py +++ b/panels/extrude.py @@ -170,9 +170,6 @@ class ExtrudePanel(ScreenPanel): self.content.add(grid) - def activate(self): - self.process_busy(self._printer.busy) - def process_busy(self, busy): for button in self.buttons: if button == "temperature": diff --git a/panels/fine_tune.py b/panels/fine_tune.py index 6261e690..504bf4ec 100644 --- a/panels/fine_tune.py +++ b/panels/fine_tune.py @@ -65,26 +65,19 @@ class FineTunePanel(ScreenPanel): grid = self._gtk.HomogeneousGrid() grid.set_row_homogeneous(False) - factor = self._printer.get_stat("gcode_move", "extrude_factor") - self.extrusion = round(float(factor) * 100) if factor else 100 - factor = self._printer.get_stat("gcode_move", "speed_factor") - self.speed_factor = float(factor) if factor else 1 - self.speed = round(self.speed_factor * 100) - offset = self._screen.printer.get_stat("gcode_move", "homing_origin") - offset = float(offset[2]) if offset else 0 self.labels['z+'] = self._gtk.Button("z-farther", "Z+", "color1") self.labels['z-'] = self._gtk.Button("z-closer", "Z-", "color1") - self.labels['zoffset'] = self._gtk.Button("refresh", f' {offset:.2f}' + _("mm"), + self.labels['zoffset'] = self._gtk.Button("refresh", ' 0.00' + _("mm"), "color1", self.bts, Gtk.PositionType.LEFT, 1) self.labels['speed+'] = self._gtk.Button("speed+", _("Speed +"), "color3") self.labels['speed-'] = self._gtk.Button("speed-", _("Speed -"), "color3") - self.labels['speedfactor'] = self._gtk.Button("refresh", f" {self.speed:3}%", + self.labels['speedfactor'] = self._gtk.Button("refresh", " 100%", "color3", self.bts, Gtk.PositionType.LEFT, 1) self.labels['extrude+'] = self._gtk.Button("flow+", _("Extrusion +"), "color4") self.labels['extrude-'] = self._gtk.Button("flow-", _("Extrusion -"), "color4") - self.labels['extrudefactor'] = self._gtk.Button("refresh", f" {self.extrusion:3}%", + self.labels['extrudefactor'] = self._gtk.Button("refresh", " 100%", "color4", self.bts, Gtk.PositionType.LEFT, 1) if self._screen.vertical_mode: grid.attach(self.labels['z+'], 0, 0, 1, 1) diff --git a/panels/job_status.py b/panels/job_status.py index 5d16dc8d..e591547d 100644 --- a/panels/job_status.py +++ b/panels/job_status.py @@ -22,15 +22,11 @@ class JobStatusPanel(ScreenPanel): super().__init__(screen, title) self.grid = self._gtk.HomogeneousGrid() self.grid.set_row_homogeneous(False) - z = self._printer.get_stat("gcode_move", "gcode_position") - self.pos_z = float(z[2]) if z else 0 - factor = self._printer.get_stat("gcode_move", "extrude_factor") - self.extrusion = round(float(factor) * 100) if factor else 100 - factor = self._printer.get_stat("gcode_move", "speed_factor") - self.speed_factor = float(factor) if factor else 1 - self.speed = round(self.speed_factor * 100) - req = self._printer.get_stat("gcode_move", "speed") - self.req_speed = round(float(req) / 60 * self.speed_factor) if req else 0 + self.pos_z = 0 + self.extrusion = 100 + self.speed_factor = 1 + self.speed = 100 + self.req_speed = 0 self.f_layer_h = self.layer_h = 1 self.oheight = 0 self.current_extruder = None @@ -60,17 +56,6 @@ class JobStatusPanel(ScreenPanel): self.labels[item].set_vexpand(True) self.labels[item].set_hexpand(True) - offset = self._screen.printer.get_stat("gcode_move", "homing_origin") - self.zoffset = float(offset[2]) if offset else 0 - self.labels['zoffset'].set_label(f"{self.zoffset:.2f} {self.mm}") - accel = self._screen.printer.get_stat('toolhead', 'max_accel') - if accel: - self.labels['max_accel'].set_label(f"{accel:.0f} {self.mms2}") - self.labels['extrude_factor'].set_label(f"{self.extrusion:3}%") - adv = self._screen.printer.get_stat('extruder', 'pressure_advance') - if adv: - self.labels['advance'].set_label(f"{adv:.2f}") - self.labels['left'] = Gtk.Label(_("Left:")) self.labels['elapsed'] = Gtk.Label(_("Elapsed:")) self.labels['total'] = Gtk.Label(_("Total:")) diff --git a/panels/move.py b/panels/move.py index f07af9af..916de5eb 100644 --- a/panels/move.py +++ b/panels/move.py @@ -103,13 +103,8 @@ class MovePanel(ScreenPanel): ctx.add_class("distbutton_active") distgrid.attach(self.labels[i], j, 0, 1, 1) - homed_axes = self._screen.printer.get_stat("toolhead", "homed_axes") - x = self._screen.printer.get_stat("gcode_move", "gcode_position")[0] - y = self._screen.printer.get_stat("gcode_move", "gcode_position")[1] - z = self._screen.printer.get_stat("gcode_move", "gcode_position")[2] - self.labels['pos_x'] = Gtk.Label(f"X: {f'{x:.2f}' if 'x' in homed_axes else '?'}") - self.labels['pos_y'] = Gtk.Label(f"Y: {f'{y:.2f}' if 'y' in homed_axes else '?'}") - self.labels['pos_z'] = Gtk.Label(f"Z: {f'{z:.2f}' if 'z' in homed_axes else '?'}") + for p in ('pos_x', 'pos_y', 'pos_z'): + self.labels[p] = Gtk.Label() adjust = self._gtk.Button("settings", None, "color2", 1, Gtk.PositionType.LEFT, 1) adjust.connect("clicked", self.load_menu, 'options', _('Settings')) adjust.set_hexpand(False) @@ -158,9 +153,6 @@ class MovePanel(ScreenPanel): name = list(option)[0] self.add_option('options', self.settings, name, option[name]) - def activate(self): - self.process_busy(self._printer.busy) - def process_busy(self, busy): buttons = ("home", "home_xy", "z_tilt", "quad_gantry_level") for button in buttons: diff --git a/panels/zcalibrate.py b/panels/zcalibrate.py index 0f75d1b0..9a642f56 100644 --- a/panels/zcalibrate.py +++ b/panels/zcalibrate.py @@ -36,11 +36,6 @@ class ZCalibratePanel(ScreenPanel): pos.attach(Gtk.Label(_("New")), 1, 3, 1, 1) pos.attach(Gtk.Label(f"{self.z_offset:.2f}"), 0, 4, 1, 1) pos.attach(self.widgets['zoffset'], 1, 4, 1, 1) - self._screen.printer.get_stat("gcode_move", "gcode_position") - if self._screen.printer.get_stat("toolhead", "homed_axes") == "xyz": - p = self._screen.printer.get_stat('gcode_move', 'gcode_position') - if p: - self.update_position(p) self.buttons = { 'zpos': self._gtk.Button('z-farther', _("Raise Nozzle"), 'color4'), 'zneg': self._gtk.Button('z-closer', _("Lower Nozzle"), 'color1'), @@ -312,5 +307,4 @@ class ZCalibratePanel(ScreenPanel): def activate(self): # This is only here because klipper doesn't provide a method to detect if it's calibrating - self.process_busy(self._printer.busy) self._screen._ws.klippy.gcode_script(KlippyGcodes.testz_move("+0.001")) diff --git a/screen.py b/screen.py index 962fd4a7..2ef4fd0d 100755 --- a/screen.py +++ b/screen.py @@ -280,6 +280,8 @@ class KlipperScreen(Gtk.Window): if hasattr(self.panels[panel_name], "process_update"): self.add_subscription(panel_name) + self.process_update("notify_status_update", self.printer.data) + self.process_update("notify_busy", self.printer.busy) if hasattr(self.panels[panel_name], "activate"): self.panels[panel_name].activate() self.show_all() @@ -477,7 +479,7 @@ class KlipperScreen(Gtk.Window): self.panels[self._cur_panels[-1]].deactivate() if self._cur_panels[-1] in self.subscriptions: self.subscriptions.remove(self._cur_panels[-1]) - if pop is True: + if pop: self._cur_panels.pop() if len(self._cur_panels) > 0: self.base_panel.add_content(self.panels[self._cur_panels[-1]]) @@ -486,6 +488,8 @@ class KlipperScreen(Gtk.Window): self.panels[self._cur_panels[-1]].activate() if hasattr(self.panels[self._cur_panels[-1]], "process_update"): self.add_subscription(self._cur_panels[-1]) + self.process_update("notify_status_update", self.printer.data) + self.process_update("notify_busy", self.printer.busy) self.show_all() def _menu_go_back(self, widget=None): @@ -493,14 +497,12 @@ class KlipperScreen(Gtk.Window): self.remove_keyboard() if self._config.get_main_config().getboolean('autoclose_popups', True): self.close_popup_message() - self._remove_current_panel(True) + self._remove_current_panel() def _menu_go_home(self, widget=None): logging.info("#### Menu go home") - self.remove_keyboard() - self.close_popup_message() while len(self._cur_panels) > 1: - self._remove_current_panel() + self._menu_go_back() def add_subscription(self, panel_name): if panel_name not in self.subscriptions: