diff --git a/panels/extrude.py b/panels/extrude.py index 8ab2f24e..f6b40cf6 100644 --- a/panels/extrude.py +++ b/panels/extrude.py @@ -141,10 +141,6 @@ class ExtrudePanel(ScreenPanel): self.labels[x]['box'].pack_start(self.labels[x]['switch'], False, False, 5) self.labels[x]['box'].get_style_context().add_class("filament_sensor") self.labels[x]['box'].set_hexpand(True) - if self._printer.get_dev_stat(x, "filament_detected"): - self.labels[x]['box'].get_style_context().add_class("filament_sensor_detected") - else: - self.labels[x]['box'].get_style_context().add_class("filament_sensor_empty") sensors.attach(self.labels[x]['box'], s, 0, 1, 1) grid = Gtk.Grid() @@ -203,16 +199,16 @@ class ExtrudePanel(ScreenPanel): if 'enabled' in data[x]: self._printer.set_dev_stat(x, "enabled", data[x]['enabled']) self.labels[x]['switch'].set_active(data[x]['enabled']) - logging.info(f"{x} Enabled: {data[x]['enabled']}") if 'filament_detected' in data[x]: self._printer.set_dev_stat(x, "filament_detected", data[x]['filament_detected']) - if data[x]['filament_detected']: - self.labels[x]['box'].get_style_context().remove_class("filament_sensor_empty") - self.labels[x]['box'].get_style_context().add_class("filament_sensor_detected") - else: - self.labels[x]['box'].get_style_context().remove_class("filament_sensor_detected") - self.labels[x]['box'].get_style_context().add_class("filament_sensor_empty") - logging.info(f"{x}: Filament detected: {data[x]['filament_detected']}") + if self._printer.get_stat(x, "enabled"): + if data[x]['filament_detected']: + self.labels[x]['box'].get_style_context().remove_class("filament_sensor_empty") + self.labels[x]['box'].get_style_context().add_class("filament_sensor_detected") + else: + self.labels[x]['box'].get_style_context().remove_class("filament_sensor_detected") + self.labels[x]['box'].get_style_context().add_class("filament_sensor_empty") + logging.info(f"{x}: {self._printer.get_stat(x)}") def change_distance(self, widget, distance): logging.info(f"### Distance {distance}") @@ -254,6 +250,10 @@ class ExtrudePanel(ScreenPanel): if switch.get_active(): self._printer.set_dev_stat(x, "enabled", True) self._screen._ws.klippy.gcode_script(f"SET_FILAMENT_SENSOR SENSOR={name} ENABLE=1") + if self._printer.get_stat(x, "filament_detected"): + self.labels[x]['box'].get_style_context().add_class("filament_sensor_detected") + else: + self.labels[x]['box'].get_style_context().add_class("filament_sensor_empty") else: self._printer.set_dev_stat(x, "enabled", False) self._screen._ws.klippy.gcode_script(f"SET_FILAMENT_SENSOR SENSOR={name} ENABLE=0")