screen_panel: share ks_printer_cfg between panels
This commit is contained in:
parent
1ca950c1fc
commit
dbd1474d63
@ -7,29 +7,31 @@ from gi.repository import Gtk
|
|||||||
|
|
||||||
|
|
||||||
class ScreenPanel:
|
class ScreenPanel:
|
||||||
|
_screen = None
|
||||||
|
_config = None
|
||||||
|
_files = None
|
||||||
|
_printer = None
|
||||||
|
_gtk = None
|
||||||
|
ks_printer_cfg = None
|
||||||
|
|
||||||
def __init__(self, screen, title, back=True):
|
def __init__(self, screen, title, back=True):
|
||||||
self.menu = None
|
self.menu = None
|
||||||
self._screen = screen
|
ScreenPanel._screen = screen
|
||||||
self._config = screen._config
|
ScreenPanel._config = screen._config
|
||||||
self._files = screen.files
|
ScreenPanel._files = screen.files
|
||||||
self._printer = screen.printer
|
ScreenPanel._printer = screen.printer
|
||||||
|
ScreenPanel._gtk = screen.gtk
|
||||||
self.labels = {}
|
self.labels = {}
|
||||||
self._gtk = screen.gtk
|
|
||||||
self.control = {}
|
self.control = {}
|
||||||
self.title = title
|
self.title = title
|
||||||
self.devices = {}
|
self.devices = {}
|
||||||
self.active_heaters = []
|
self.active_heaters = []
|
||||||
self.ks_printer_cfg = None
|
|
||||||
|
|
||||||
self.layout = Gtk.Layout()
|
self.layout = Gtk.Layout()
|
||||||
self.layout.set_size(self._screen.width, self._screen.height)
|
self.layout.set_size(screen.width, screen.height)
|
||||||
|
|
||||||
self.content = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
|
self.content = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
|
||||||
self.content.get_style_context().add_class("content")
|
self.content.get_style_context().add_class("content")
|
||||||
self.content.set_hexpand(True)
|
self.content.set_hexpand(True)
|
||||||
self.content.set_vexpand(True)
|
self.content.set_vexpand(True)
|
||||||
|
|
||||||
self._show_heater_power = self._config.get_main_config().getboolean('show_heater_power', False)
|
self._show_heater_power = self._config.get_main_config().getboolean('show_heater_power', False)
|
||||||
|
|
||||||
def emergency_stop(self, widget):
|
def emergency_stop(self, widget):
|
||||||
|
@ -310,7 +310,7 @@ class BasePanel(ScreenPanel):
|
|||||||
self.buttons_showing['estop'] = False
|
self.buttons_showing['estop'] = False
|
||||||
|
|
||||||
def set_ks_printer_cfg(self, printer):
|
def set_ks_printer_cfg(self, printer):
|
||||||
self.ks_printer_cfg = self._config.get_printer_config(printer)
|
ScreenPanel.ks_printer_cfg = self._config.get_printer_config(printer)
|
||||||
if self.ks_printer_cfg is not None:
|
if self.ks_printer_cfg is not None:
|
||||||
self.titlebar_name_type = self.ks_printer_cfg.get("titlebar_name_type", None)
|
self.titlebar_name_type = self.ks_printer_cfg.get("titlebar_name_type", None)
|
||||||
titlebar_items = self.ks_printer_cfg.get("titlebar_items", None)
|
titlebar_items = self.ks_printer_cfg.get("titlebar_items", None)
|
||||||
|
@ -103,10 +103,8 @@ class BedLevelPanel(ScreenPanel):
|
|||||||
self.labels['bm'] = self._gtk.ButtonImage("bed-level-t-m", scale=2.5)
|
self.labels['bm'] = self._gtk.ButtonImage("bed-level-t-m", scale=2.5)
|
||||||
|
|
||||||
valid_positions = True
|
valid_positions = True
|
||||||
printer_cfg = self._config.get_printer_config(self._screen.connected_printer)
|
if self.ks_printer_cfg is not None:
|
||||||
if printer_cfg is not None:
|
screw_positions = self.ks_printer_cfg.get("screw_positions", "")
|
||||||
logging.info(f"printer {printer_cfg}")
|
|
||||||
screw_positions = printer_cfg.get("screw_positions", "")
|
|
||||||
screw_positions = [str(i.strip()) for i in screw_positions.split(',')]
|
screw_positions = [str(i.strip()) for i in screw_positions.split(',')]
|
||||||
logging.info(f"Positions: {screw_positions}")
|
logging.info(f"Positions: {screw_positions}")
|
||||||
for screw in screw_positions:
|
for screw in screw_positions:
|
||||||
@ -116,7 +114,7 @@ class BedLevelPanel(ScreenPanel):
|
|||||||
valid_positions = False
|
valid_positions = False
|
||||||
if not (3 <= len(screw_positions) <= 8):
|
if not (3 <= len(screw_positions) <= 8):
|
||||||
valid_positions = False
|
valid_positions = False
|
||||||
rotation = printer_cfg.getint("screw_rotation", 0)
|
rotation = self.ks_printer_cfg.getint("screw_rotation", 0)
|
||||||
logging.info(f"Rotation: {rotation}")
|
logging.info(f"Rotation: {rotation}")
|
||||||
else:
|
else:
|
||||||
valid_positions = False
|
valid_positions = False
|
||||||
|
@ -25,14 +25,13 @@ class ExtrudePanel(ScreenPanel):
|
|||||||
|
|
||||||
self.speeds = ['1', '2', '5', '25']
|
self.speeds = ['1', '2', '5', '25']
|
||||||
self.distances = ['5', '10', '15', '25']
|
self.distances = ['5', '10', '15', '25']
|
||||||
print_cfg = self._config.get_printer_config(self._screen.connected_printer)
|
if self.ks_printer_cfg is not None:
|
||||||
if print_cfg is not None:
|
dis = self.ks_printer_cfg.get("extrude_distances", '5, 10, 15, 25')
|
||||||
dis = print_cfg.get("extrude_distances", '5, 10, 15, 25')
|
|
||||||
if re.match(r'^[0-9,\s]+$', dis):
|
if re.match(r'^[0-9,\s]+$', dis):
|
||||||
dis = [str(i.strip()) for i in dis.split(',')]
|
dis = [str(i.strip()) for i in dis.split(',')]
|
||||||
if 1 < len(dis) < 5:
|
if 1 < len(dis) < 5:
|
||||||
self.distances = dis
|
self.distances = dis
|
||||||
vel = print_cfg.get("extrude_speeds", '1, 2, 5, 25')
|
vel = self.ks_printer_cfg.get("extrude_speeds", '1, 2, 5, 25')
|
||||||
if re.match(r'^[0-9,\s]+$', vel):
|
if re.match(r'^[0-9,\s]+$', vel):
|
||||||
vel = [str(i.strip()) for i in vel.split(',')]
|
vel = [str(i.strip()) for i in vel.split(',')]
|
||||||
if 1 < len(vel) < 5:
|
if 1 < len(vel) < 5:
|
||||||
|
@ -24,9 +24,8 @@ class FineTunePanel(ScreenPanel):
|
|||||||
|
|
||||||
def __init__(self, screen, title, back=True):
|
def __init__(self, screen, title, back=True):
|
||||||
super().__init__(screen, title, back)
|
super().__init__(screen, title, back)
|
||||||
print_cfg = self._config.get_printer_config(self._screen.connected_printer)
|
if self.ks_printer_cfg is not None:
|
||||||
if print_cfg is not None:
|
bs = self.ks_printer_cfg.get("z_babystep_values", "0.01, 0.05")
|
||||||
bs = print_cfg.get("z_babystep_values", "0.01, 0.05")
|
|
||||||
if re.match(r'^[0-9,\.\s]+$', bs):
|
if re.match(r'^[0-9,\.\s]+$', bs):
|
||||||
bs = [str(i.strip()) for i in bs.split(',')]
|
bs = [str(i.strip()) for i in bs.split(',')]
|
||||||
if 1 < len(bs) < 3:
|
if 1 < len(bs) < 3:
|
||||||
|
@ -188,9 +188,8 @@ class JobStatusPanel(ScreenPanel):
|
|||||||
self.labels['temp_grid'].attach(self.heater_button[device], n, 0, 1, 1)
|
self.labels['temp_grid'].attach(self.heater_button[device], n, 0, 1, 1)
|
||||||
n += 1
|
n += 1
|
||||||
extra_item = not self._show_heater_power
|
extra_item = not self._show_heater_power
|
||||||
printer_cfg = self._config.get_printer_config(self._screen.connected_printer)
|
if self.ks_printer_cfg is not None:
|
||||||
if printer_cfg is not None:
|
titlebar_items = self.ks_printer_cfg.get("titlebar_items", "")
|
||||||
titlebar_items = printer_cfg.get("titlebar_items", "")
|
|
||||||
if titlebar_items is not None:
|
if titlebar_items is not None:
|
||||||
titlebar_items = [str(i.strip()) for i in titlebar_items.split(',')]
|
titlebar_items = [str(i.strip()) for i in titlebar_items.split(',')]
|
||||||
logging.info(f"Titlebar items: {titlebar_items}")
|
logging.info(f"Titlebar items: {titlebar_items}")
|
||||||
|
@ -199,8 +199,7 @@ class MovePanel(ScreenPanel):
|
|||||||
|
|
||||||
dist = f"{direction}{self.distance}"
|
dist = f"{direction}{self.distance}"
|
||||||
config_key = "move_speed_z" if axis == "Z" else "move_speed_xy"
|
config_key = "move_speed_z" if axis == "Z" else "move_speed_xy"
|
||||||
printer_cfg = self._config.get_printer_config(self._screen.connected_printer)
|
speed = None if self.ks_printer_cfg is None else self.ks_printer_cfg.getint(config_key, None)
|
||||||
speed = None if printer_cfg is None else printer_cfg.getint(config_key, None)
|
|
||||||
if speed is None:
|
if speed is None:
|
||||||
speed = self._config.get_config()['main'].getint(config_key, 20)
|
speed = self._config.get_config()['main'].getint(config_key, 20)
|
||||||
speed = 60 * max(1, speed)
|
speed = 60 * max(1, speed)
|
||||||
|
@ -72,15 +72,12 @@ class SplashScreenPanel(ScreenPanel):
|
|||||||
def show_restart_buttons(self):
|
def show_restart_buttons(self):
|
||||||
|
|
||||||
self.clear_action_bar()
|
self.clear_action_bar()
|
||||||
printer = self._screen.connected_printer
|
if self.ks_printer_cfg is not None and self._screen._ws.connected:
|
||||||
if printer is not None and self._screen._ws.connected:
|
power_devices = self.ks_printer_cfg.get("power_devices", "")
|
||||||
printer_cfg = self._config.get_printer_config(printer)
|
power_devices = [str(i.strip()) for i in power_devices.split(',')]
|
||||||
if printer_cfg is not None:
|
if power_devices[0]:
|
||||||
power_devices = printer_cfg.get("power_devices", "")
|
logging.info(f"Associated power devices: {power_devices}")
|
||||||
power_devices = [str(i.strip()) for i in power_devices.split(',')]
|
self.add_power_button(self._screen.search_power_devices(power_devices))
|
||||||
if power_devices[0]:
|
|
||||||
logging.info(f"Associated power devices: {power_devices}")
|
|
||||||
self.add_power_button(self._screen.search_power_devices(power_devices))
|
|
||||||
|
|
||||||
if self._screen._ws and self._screen._ws.connected:
|
if self._screen._ws and self._screen._ws.connected:
|
||||||
self.labels['actions'].add(self.labels['restart'])
|
self.labels['actions'].add(self.labels['restart'])
|
||||||
|
@ -14,7 +14,6 @@ def create_panel(*args):
|
|||||||
|
|
||||||
|
|
||||||
class ZCalibratePanel(ScreenPanel):
|
class ZCalibratePanel(ScreenPanel):
|
||||||
_screen = None
|
|
||||||
widgets = {}
|
widgets = {}
|
||||||
distances = ['.01', '.05', '.1', '.5', '1', '5']
|
distances = ['.01', '.05', '.1', '.5', '1', '5']
|
||||||
distance = distances[-2]
|
distance = distances[-2]
|
||||||
@ -152,10 +151,9 @@ class ZCalibratePanel(ScreenPanel):
|
|||||||
x_position = y_position = None
|
x_position = y_position = None
|
||||||
z_hop = speed = None
|
z_hop = speed = None
|
||||||
# Get position from config
|
# Get position from config
|
||||||
printer_cfg = self._config.get_printer_config(self._screen.connected_printer)
|
if self.ks_printer_cfg is not None:
|
||||||
if printer_cfg is not None:
|
x_position = self.ks_printer_cfg.getfloat("calibrate_x_position", None)
|
||||||
x_position = printer_cfg.getfloat("calibrate_x_position", None)
|
y_position = self.ks_printer_cfg.getfloat("calibrate_y_position", None)
|
||||||
y_position = printer_cfg.getfloat("calibrate_y_position", None)
|
|
||||||
elif 'z_calibrate_position' in self._config.get_config():
|
elif 'z_calibrate_position' in self._config.get_config():
|
||||||
# OLD global way, this should be deprecated
|
# OLD global way, this should be deprecated
|
||||||
x_position = self._config.get_config()['z_calibrate_position'].getfloat("calibrate_x_position", None)
|
x_position = self._config.get_config()['z_calibrate_position'].getfloat("calibrate_x_position", None)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user