temperature: select the device that was selected in job_status (#1025)

This commit is contained in:
Alfredo Monclus 2023-06-30 17:43:00 -03:00 committed by GitHub
parent 4f86de8c80
commit b5abd3d7b9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 22 additions and 19 deletions

View File

@ -60,8 +60,11 @@ class ScreenPanel:
return self._gtk.PixbufFromHttp(loc[1], width, height) return self._gtk.PixbufFromHttp(loc[1], width, height)
return None return None
def menu_item_clicked(self, widget, panel, item): def menu_item_clicked(self, widget, panel_type, item):
self._screen.show_panel(panel, item['panel'], item['name'], 1, False) if 'extra' in item:
self._screen.show_panel(panel_type, item['panel'], item['name'], 1, False, extra=item['extra'])
return
self._screen.show_panel(panel_type, item['panel'], item['name'], 1, False)
def load_menu(self, widget, name, title=None): def load_menu(self, widget, name, title=None):
logging.info(f"loading menu {name}") logging.info(f"loading menu {name}")

View File

@ -160,15 +160,16 @@ class JobStatusPanel(ScreenPanel):
n = 0 n = 0
self.buttons['extruder'] = {} self.buttons['extruder'] = {}
if self._printer.get_tools(): if self._printer.get_tools():
self.current_extruder = self._printer.get_stat("toolhead", "extruder")
for i, extruder in enumerate(self._printer.get_tools()): for i, extruder in enumerate(self._printer.get_tools()):
self.labels[extruder] = Gtk.Label("-") self.labels[extruder] = Gtk.Label("-")
self.buttons['extruder'][extruder] = self._gtk.Button(f"extruder-{i}", "", None, self.bts, self.buttons['extruder'][extruder] = self._gtk.Button(f"extruder-{i}", "", None, self.bts,
Gtk.PositionType.LEFT, 1) Gtk.PositionType.LEFT, 1)
self.buttons['extruder'][extruder].set_label(self.labels[extruder].get_text()) self.buttons['extruder'][extruder].set_label(self.labels[extruder].get_text())
self.buttons['extruder'][extruder].connect("clicked", self.menu_item_clicked, "temperature", self.buttons['extruder'][extruder].connect("clicked", self.menu_item_clicked, "temperature",
{"panel": "temperature", "name": _("Temperature")}) {"panel": "temperature", "name": _("Temperature"),
'extra': self.current_extruder})
self.buttons['extruder'][extruder].set_halign(Gtk.Align.START) self.buttons['extruder'][extruder].set_halign(Gtk.Align.START)
self.current_extruder = self._printer.get_stat("toolhead", "extruder")
self.labels['temp_grid'].attach(self.buttons['extruder'][self.current_extruder], n, 0, 1, 1) self.labels['temp_grid'].attach(self.buttons['extruder'][self.current_extruder], n, 0, 1, 1)
n += 1 n += 1
else: else:
@ -179,7 +180,8 @@ class JobStatusPanel(ScreenPanel):
self.labels['heater_bed'] = Gtk.Label("-") self.labels['heater_bed'] = Gtk.Label("-")
self.buttons['heater']['heater_bed'].set_label(self.labels['heater_bed'].get_text()) self.buttons['heater']['heater_bed'].set_label(self.labels['heater_bed'].get_text())
self.buttons['heater']['heater_bed'].connect("clicked", self.menu_item_clicked, "temperature", self.buttons['heater']['heater_bed'].connect("clicked", self.menu_item_clicked, "temperature",
{"panel": "temperature", "name": _("Temperature")}) {"panel": "temperature", "name": _("Temperature"),
'extra': 'heater_bed'})
self.buttons['heater']['heater_bed'].set_halign(Gtk.Align.START) self.buttons['heater']['heater_bed'].set_halign(Gtk.Align.START)
self.labels['temp_grid'].attach(self.buttons['heater']['heater_bed'], n, 0, 1, 1) self.labels['temp_grid'].attach(self.buttons['heater']['heater_bed'], n, 0, 1, 1)
n += 1 n += 1
@ -191,7 +193,7 @@ class JobStatusPanel(ScreenPanel):
self.labels[dev] = Gtk.Label("-") self.labels[dev] = Gtk.Label("-")
self.buttons['heater'][dev].set_label(self.labels[dev].get_text()) self.buttons['heater'][dev].set_label(self.labels[dev].get_text())
self.buttons['heater'][dev].connect("clicked", self.menu_item_clicked, "temperature", self.buttons['heater'][dev].connect("clicked", self.menu_item_clicked, "temperature",
{"panel": "temperature", "name": _("Temperature")}) {"panel": "temperature", "name": _("Temperature"), "extra": dev})
self.buttons['heater'][dev].set_halign(Gtk.Align.START) self.buttons['heater'][dev].set_halign(Gtk.Align.START)
self.labels['temp_grid'].attach(self.buttons['heater'][dev], n, 0, 1, 1) self.labels['temp_grid'].attach(self.buttons['heater'][dev], n, 0, 1, 1)
n += 1 n += 1

View File

@ -11,15 +11,15 @@ from ks_includes.widgets.heatergraph import HeaterGraph
from ks_includes.widgets.keypad import Keypad from ks_includes.widgets.keypad import Keypad
def create_panel(*args): def create_panel(*args, **kwargs):
return TemperaturePanel(*args) return TemperaturePanel(*args, **kwargs)
class TemperaturePanel(ScreenPanel): class TemperaturePanel(ScreenPanel):
graph_update = None graph_update = None
active_heater = None active_heater = None
def __init__(self, screen, title): def __init__(self, screen, title, extra=None):
super().__init__(screen, title) super().__init__(screen, title)
self.popover_timeout = None self.popover_timeout = None
self.left_panel = None self.left_panel = None
@ -34,18 +34,13 @@ class TemperaturePanel(ScreenPanel):
self.grid.attach(self.create_left_panel(), 0, 0, 1, 1) self.grid.attach(self.create_left_panel(), 0, 0, 1, 1)
# When printing start in temp_delta mode and only select tools # When printing start in temp_delta mode and only select tools
state = self._printer.state
logging.info(state)
selection = [] selection = []
if state not in ["printing", "paused"]: if self._printer.state not in ["printing", "paused"]:
for extruder in self._printer.get_tools(): selection.extend(iter(self._printer.get_tools()))
selection.append(extruder)
self.show_preheat = True self.show_preheat = True
selection.extend(self._printer.get_heaters()) selection.extend(self._printer.get_heaters())
else: elif extra:
current_extruder = self._printer.get_stat("toolhead", "extruder") selection.append(extra)
if current_extruder:
selection.append(current_extruder)
# Select heaters # Select heaters
for h in selection: for h in selection:
@ -224,7 +219,7 @@ class TemperaturePanel(ScreenPanel):
self.active_heaters.append(device) self.active_heaters.append(device)
self.devices[device]['name'].get_style_context().add_class("button_active") self.devices[device]['name'].get_style_context().add_class("button_active")
self.devices[device]['select'].set_label(_("Deselect")) self.devices[device]['select'].set_label(_("Deselect"))
logging.info(f"Seselecting {device}") logging.info(f"Selecting {device}")
return return
def set_temperature(self, widget, setting): def set_temperature(self, widget, setting):

View File

@ -293,6 +293,9 @@ class KlipperScreen(Gtk.Window):
del self.panels[panel_name] del self.panels[panel_name]
self.show_error_modal(f"Unable to load panel {panel_type}", f"{e}") self.show_error_modal(f"Unable to load panel {panel_type}", f"{e}")
return return
elif 'extra' in kwargs:
logging.info(f"extra: {kwargs['extra']}")
self.panels[panel_name].__init__(self, title, **kwargs)
self._cur_panels.append(panel_name) self._cur_panels.append(panel_name)
if panel_name in self.panels_reinit: if panel_name in self.panels_reinit: