temperature: select the device that was selected in job_status (#1025)
This commit is contained in:
parent
4f86de8c80
commit
b5abd3d7b9
@ -60,8 +60,11 @@ class ScreenPanel:
|
||||
return self._gtk.PixbufFromHttp(loc[1], width, height)
|
||||
return None
|
||||
|
||||
def menu_item_clicked(self, widget, panel, item):
|
||||
self._screen.show_panel(panel, item['panel'], item['name'], 1, False)
|
||||
def menu_item_clicked(self, widget, panel_type, item):
|
||||
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):
|
||||
logging.info(f"loading menu {name}")
|
||||
|
@ -160,15 +160,16 @@ class JobStatusPanel(ScreenPanel):
|
||||
n = 0
|
||||
self.buttons['extruder'] = {}
|
||||
if self._printer.get_tools():
|
||||
self.current_extruder = self._printer.get_stat("toolhead", "extruder")
|
||||
for i, extruder in enumerate(self._printer.get_tools()):
|
||||
self.labels[extruder] = Gtk.Label("-")
|
||||
self.buttons['extruder'][extruder] = self._gtk.Button(f"extruder-{i}", "", None, self.bts,
|
||||
Gtk.PositionType.LEFT, 1)
|
||||
self.buttons['extruder'][extruder].set_label(self.labels[extruder].get_text())
|
||||
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.current_extruder = self._printer.get_stat("toolhead", "extruder")
|
||||
self.labels['temp_grid'].attach(self.buttons['extruder'][self.current_extruder], n, 0, 1, 1)
|
||||
n += 1
|
||||
else:
|
||||
@ -179,7 +180,8 @@ class JobStatusPanel(ScreenPanel):
|
||||
self.labels['heater_bed'] = Gtk.Label("-")
|
||||
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",
|
||||
{"panel": "temperature", "name": _("Temperature")})
|
||||
{"panel": "temperature", "name": _("Temperature"),
|
||||
'extra': 'heater_bed'})
|
||||
self.buttons['heater']['heater_bed'].set_halign(Gtk.Align.START)
|
||||
self.labels['temp_grid'].attach(self.buttons['heater']['heater_bed'], n, 0, 1, 1)
|
||||
n += 1
|
||||
@ -191,7 +193,7 @@ class JobStatusPanel(ScreenPanel):
|
||||
self.labels[dev] = Gtk.Label("-")
|
||||
self.buttons['heater'][dev].set_label(self.labels[dev].get_text())
|
||||
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.labels['temp_grid'].attach(self.buttons['heater'][dev], n, 0, 1, 1)
|
||||
n += 1
|
||||
|
@ -11,15 +11,15 @@ from ks_includes.widgets.heatergraph import HeaterGraph
|
||||
from ks_includes.widgets.keypad import Keypad
|
||||
|
||||
|
||||
def create_panel(*args):
|
||||
return TemperaturePanel(*args)
|
||||
def create_panel(*args, **kwargs):
|
||||
return TemperaturePanel(*args, **kwargs)
|
||||
|
||||
|
||||
class TemperaturePanel(ScreenPanel):
|
||||
graph_update = None
|
||||
active_heater = None
|
||||
|
||||
def __init__(self, screen, title):
|
||||
def __init__(self, screen, title, extra=None):
|
||||
super().__init__(screen, title)
|
||||
self.popover_timeout = None
|
||||
self.left_panel = None
|
||||
@ -34,18 +34,13 @@ class TemperaturePanel(ScreenPanel):
|
||||
self.grid.attach(self.create_left_panel(), 0, 0, 1, 1)
|
||||
|
||||
# When printing start in temp_delta mode and only select tools
|
||||
state = self._printer.state
|
||||
logging.info(state)
|
||||
selection = []
|
||||
if state not in ["printing", "paused"]:
|
||||
for extruder in self._printer.get_tools():
|
||||
selection.append(extruder)
|
||||
if self._printer.state not in ["printing", "paused"]:
|
||||
selection.extend(iter(self._printer.get_tools()))
|
||||
self.show_preheat = True
|
||||
selection.extend(self._printer.get_heaters())
|
||||
else:
|
||||
current_extruder = self._printer.get_stat("toolhead", "extruder")
|
||||
if current_extruder:
|
||||
selection.append(current_extruder)
|
||||
elif extra:
|
||||
selection.append(extra)
|
||||
|
||||
# Select heaters
|
||||
for h in selection:
|
||||
@ -224,7 +219,7 @@ class TemperaturePanel(ScreenPanel):
|
||||
self.active_heaters.append(device)
|
||||
self.devices[device]['name'].get_style_context().add_class("button_active")
|
||||
self.devices[device]['select'].set_label(_("Deselect"))
|
||||
logging.info(f"Seselecting {device}")
|
||||
logging.info(f"Selecting {device}")
|
||||
return
|
||||
|
||||
def set_temperature(self, widget, setting):
|
||||
|
@ -293,6 +293,9 @@ class KlipperScreen(Gtk.Window):
|
||||
del self.panels[panel_name]
|
||||
self.show_error_modal(f"Unable to load panel {panel_type}", f"{e}")
|
||||
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)
|
||||
if panel_name in self.panels_reinit:
|
||||
|
Loading…
x
Reference in New Issue
Block a user