From 0f4f56bb9f76f4707e2147dfe51f917016328252 Mon Sep 17 00:00:00 2001 From: alfrix Date: Mon, 23 May 2022 13:50:47 -0300 Subject: [PATCH] Fix paused state close #607 fix #611 --- ks_includes/defaults.conf | 6 ++++++ ks_includes/printer.py | 10 +++++++--- panels/menu.py | 6 ++---- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/ks_includes/defaults.conf b/ks_includes/defaults.conf index a976535a..39cf65b4 100644 --- a/ks_includes/defaults.conf +++ b/ks_includes/defaults.conf @@ -201,6 +201,12 @@ icon: fan panel: fan enable: {{ printer.fans.count > 0 }} +[menu __print move] +name: {{ gettext('Move') }} +icon: move +panel: move +enable: {{ (printer.pause_resume.is_paused == True) }} + [menu __print extrude] name: {{ gettext('Extrude') }} icon: filament diff --git a/ks_includes/printer.py b/ks_includes/printer.py index aa749305..ef900865 100644 --- a/ks_includes/printer.py +++ b/ks_includes/printer.py @@ -137,7 +137,7 @@ class Printer: self.data[x] = {} self.data[x].update(data[x]) - if "webhooks" in data or "idle_timeout" in data or "print_stats" in data: + if "webhooks" in data or "idle_timeout" in data or "print_stats" in data or "pause_resume" in data: self.evaluate_state() def get_updates(self): @@ -150,7 +150,9 @@ class Printer: if wh_state == "ready": new_state = "ready" - if self.data['print_stats']: + if self.data['pause_resume']['is_paused']: + new_state = "paused" + elif self.data['print_stats']: print_state = self.data['print_stats']['state'].lower() # complete, error, paused, printing, standby if print_state == "paused": new_state = "paused" @@ -262,7 +264,9 @@ class Printer: "count": len(self.get_gcode_macros()) }, "idle_timeout": self.get_stat("idle_timeout").copy(), - "pause_resume": self.get_stat("pause_resume").copy(), + "pause_resume": { + "is_paused": True if self.state == "paused" else False + }, "power_devices": { "count": len(self.get_power_devices()) }, diff --git a/panels/menu.py b/panels/menu.py index 575858c4..93d11b72 100644 --- a/panels/menu.py +++ b/panels/menu.py @@ -31,8 +31,7 @@ class MenuPanel(ScreenPanel): self.content.add(scroll) def activate(self): - if not self.j2_data: - self.j2_data = self._printer.get_printer_status_data() + self.j2_data = self._printer.get_printer_status_data() self.j2_data.update({ 'moonraker_connected': self._screen._ws.is_connected() }) @@ -108,8 +107,7 @@ class MenuPanel(ScreenPanel): logging.info("moonraker is_connected %s", self._screen._ws.is_connected()) return self._screen._ws.is_connected() - if not self.j2_data: - self.j2_data = self._printer.get_printer_status_data() + self.j2_data = self._printer.get_printer_status_data() try: logging.debug("Template: '%s'" % enable) logging.debug("Data: %s" % self.j2_data)