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 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}")
|
||||||
|
@ -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
|
||||||
|
@ -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):
|
||||||
|
@ -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:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user