From 9d89311bcc439eed1bc8420e51e46e4bf175911c Mon Sep 17 00:00:00 2001 From: Jordan <31575189+jordanruthe@users.noreply.github.com> Date: Mon, 28 Dec 2020 17:08:17 -0500 Subject: [PATCH] updates to several panels to account for a lack of heater_bed --- ks_includes/printer.py | 4 ++++ panels/job_status.py | 24 +++++++++++++----------- panels/main_menu.py | 7 ++++--- panels/preheat.py | 20 +++++++++++--------- panels/temperature.py | 18 ++++++++++-------- 5 files changed, 42 insertions(+), 31 deletions(-) diff --git a/ks_includes/printer.py b/ks_includes/printer.py index 640d0170..ace4bda2 100644 --- a/ks_includes/printer.py +++ b/ks_includes/printer.py @@ -234,6 +234,10 @@ class Printer: def get_tool_number(self, tool): return self.tools.index(tool) + def has_heated_bed(self): + if "heater_bed" in self.devices: + return True + def section_exists(self, section): if section in self.get_config_section_list(): return True diff --git a/panels/job_status.py b/panels/job_status.py index 22fb2ace..21c4f668 100644 --- a/panels/job_status.py +++ b/panels/job_status.py @@ -104,16 +104,17 @@ class JobStatusPanel(ScreenPanel): self.labels[extruder + '_box'].add(self.labels[extruder]) i += 1 - heater_bed = self._gtk.Image("bed.svg", None, .6, .6) - self.labels['heater_bed'] = Gtk.Label(label="") - self.labels['heater_bed'].get_style_context().add_class("printing-info") - heater_bed_box = Gtk.Box(spacing=0) - heater_bed_box.add(heater_bed) - heater_bed_box.add(self.labels['heater_bed']) temp_grid = self._gtk.HomogeneousGrid() self.current_extruder = self._printer.get_stat("toolhead","extruder") temp_grid.attach(self.labels[self.current_extruder + '_box'], 0, 0, 1, 1) - temp_grid.attach(heater_bed_box, 1, 0, 1, 1) + if self._printer.has_heated_bed(): + heater_bed = self._gtk.Image("bed.svg", None, .6, .6) + self.labels['heater_bed'] = Gtk.Label(label="") + self.labels['heater_bed'].get_style_context().add_class("printing-info") + heater_bed_box = Gtk.Box(spacing=0) + heater_bed_box.add(heater_bed) + heater_bed_box.add(self.labels['heater_bed']) + temp_grid.attach(heater_bed_box, 1, 0, 1, 1) self.labels['temp_grid'] = temp_grid # Create time remaining items @@ -347,10 +348,11 @@ class JobStatusPanel(ScreenPanel): return _ = self.lang.gettext - self.update_temp("heater_bed", - self._printer.get_dev_stat("heater_bed","temperature"), - self._printer.get_dev_stat("heater_bed","target") - ) + if self._printer.has_heated_bed(): + self.update_temp("heater_bed", + self._printer.get_dev_stat("heater_bed","temperature"), + self._printer.get_dev_stat("heater_bed","target") + ) for x in self._printer.get_tools(): self.update_temp(x, self._printer.get_dev_stat(x,"temperature"), diff --git a/panels/main_menu.py b/panels/main_menu.py index 57a0a42a..b6261e1b 100644 --- a/panels/main_menu.py +++ b/panels/main_menu.py @@ -32,10 +32,11 @@ class MainPanel(MenuPanel): eq_grid.attach(self.labels[x], i%2, i/2, 1, 1) i += 1 - self.labels['heater_bed'] = self._gtk.ButtonImage("bed", self._gtk.formatTemperatureString(0, 0)) + if self._printer.has_heated_bed(): + self.labels['heater_bed'] = self._gtk.ButtonImage("bed", self._gtk.formatTemperatureString(0, 0)) - width = 2 if i > 1 else 1 - eq_grid.attach(self.labels['heater_bed'], 0, i/2+1, width, 1) + width = 2 if i > 1 else 1 + eq_grid.attach(self.labels['heater_bed'], 0, i/2+1, width, 1) grid.attach(eq_grid, 0, 0, 1, 1) diff --git a/panels/preheat.py b/panels/preheat.py index e6a022c7..acac48b8 100644 --- a/panels/preheat.py +++ b/panels/preheat.py @@ -33,10 +33,11 @@ class PreheatPanel(ScreenPanel): eq_grid.attach(self.labels[x], i%2, i/2, 1, 1) i += 1 - self.labels["heater_bed"] = self._gtk.ToggleButtonImage("bed", self._gtk.formatTemperatureString(0, 0)) - self.labels["heater_bed"].connect('clicked', self.select_heater, "heater_bed") - width = 2 if i > 1 else 1 - eq_grid.attach(self.labels["heater_bed"], 0, i/2+1, width, 1) + if self._printer.has_heated_bed(): + self.labels["heater_bed"] = self._gtk.ToggleButtonImage("bed", self._gtk.formatTemperatureString(0, 0)) + self.labels["heater_bed"].connect('clicked', self.select_heater, "heater_bed") + width = 2 if i > 1 else 1 + eq_grid.attach(self.labels["heater_bed"], 0, i/2+1, width, 1) self.labels["control_grid"] = self._gtk.HomogeneousGrid() @@ -69,7 +70,7 @@ class PreheatPanel(ScreenPanel): if x not in self.active_heaters: self.select_heater(None, x) - if "heater_bed" not in self.active_heaters: + if self._printer.has_heated_bed() and "heater_bed" not in self.active_heaters: self.select_heater(None, "heater_bed") def select_heater(self, widget, heater): @@ -108,10 +109,11 @@ class PreheatPanel(ScreenPanel): if action != "notify_status_update": return - self.update_temp("heater_bed", - self._printer.get_dev_stat("heater_bed","temperature"), - self._printer.get_dev_stat("heater_bed","target") - ) + if self._printer.has_heated_bed(): + self.update_temp("heater_bed", + self._printer.get_dev_stat("heater_bed","temperature"), + self._printer.get_dev_stat("heater_bed","target") + ) for x in self._printer.get_tools(): self.update_temp(x, self._printer.get_dev_stat(x,"temperature"), diff --git a/panels/temperature.py b/panels/temperature.py index a9ca8edb..b9b5fcdf 100644 --- a/panels/temperature.py +++ b/panels/temperature.py @@ -39,10 +39,11 @@ class TemperaturePanel(ScreenPanel): print ("Primary tool: " + primary_tool) self.labels[primary_tool].get_style_context().add_class('button_active') - self.labels["heater_bed"] = self._gtk.ToggleButtonImage("bed", self._gtk.formatTemperatureString(0, 0)) - self.labels["heater_bed"].connect('clicked', self.select_heater, "heater_bed") - width = 2 if i > 1 else 1 - eq_grid.attach(self.labels["heater_bed"], 0, i/2+1, width, 1) + if self._printer.has_heated_bed(): + self.labels["heater_bed"] = self._gtk.ToggleButtonImage("bed", self._gtk.formatTemperatureString(0, 0)) + self.labels["heater_bed"].connect('clicked', self.select_heater, "heater_bed") + width = 2 if i > 1 else 1 + eq_grid.attach(self.labels["heater_bed"], 0, i/2+1, width, 1) self.labels["control_grid"] = self._gtk.HomogeneousGrid() @@ -181,10 +182,11 @@ class TemperaturePanel(ScreenPanel): if action != "notify_status_update": return - self.update_temp("heater_bed", - self._printer.get_dev_stat("heater_bed","temperature"), - self._printer.get_dev_stat("heater_bed","target") - ) + if self._printer.has_heated_bed(): + self.update_temp("heater_bed", + self._printer.get_dev_stat("heater_bed","temperature"), + self._printer.get_dev_stat("heater_bed","target") + ) for x in self._printer.get_tools(): self.update_temp(x, self._printer.get_dev_stat(x,"temperature"),