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:
|
||||
_screen = None
|
||||
_config = None
|
||||
_files = None
|
||||
_printer = None
|
||||
_gtk = None
|
||||
ks_printer_cfg = None
|
||||
|
||||
def __init__(self, screen, title, back=True):
|
||||
self.menu = None
|
||||
self._screen = screen
|
||||
self._config = screen._config
|
||||
self._files = screen.files
|
||||
self._printer = screen.printer
|
||||
ScreenPanel._screen = screen
|
||||
ScreenPanel._config = screen._config
|
||||
ScreenPanel._files = screen.files
|
||||
ScreenPanel._printer = screen.printer
|
||||
ScreenPanel._gtk = screen.gtk
|
||||
self.labels = {}
|
||||
self._gtk = screen.gtk
|
||||
self.control = {}
|
||||
self.title = title
|
||||
self.devices = {}
|
||||
self.active_heaters = []
|
||||
self.ks_printer_cfg = None
|
||||
|
||||
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.get_style_context().add_class("content")
|
||||
self.content.set_hexpand(True)
|
||||
self.content.set_vexpand(True)
|
||||
|
||||
self._show_heater_power = self._config.get_main_config().getboolean('show_heater_power', False)
|
||||
|
||||
def emergency_stop(self, widget):
|
||||
|
@ -310,7 +310,7 @@ class BasePanel(ScreenPanel):
|
||||
self.buttons_showing['estop'] = False
|
||||
|
||||
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:
|
||||
self.titlebar_name_type = self.ks_printer_cfg.get("titlebar_name_type", 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)
|
||||
|
||||
valid_positions = True
|
||||
printer_cfg = self._config.get_printer_config(self._screen.connected_printer)
|
||||
if printer_cfg is not None:
|
||||
logging.info(f"printer {printer_cfg}")
|
||||
screw_positions = printer_cfg.get("screw_positions", "")
|
||||
if self.ks_printer_cfg is not None:
|
||||
screw_positions = self.ks_printer_cfg.get("screw_positions", "")
|
||||
screw_positions = [str(i.strip()) for i in screw_positions.split(',')]
|
||||
logging.info(f"Positions: {screw_positions}")
|
||||
for screw in screw_positions:
|
||||
@ -116,7 +114,7 @@ class BedLevelPanel(ScreenPanel):
|
||||
valid_positions = False
|
||||
if not (3 <= len(screw_positions) <= 8):
|
||||
valid_positions = False
|
||||
rotation = printer_cfg.getint("screw_rotation", 0)
|
||||
rotation = self.ks_printer_cfg.getint("screw_rotation", 0)
|
||||
logging.info(f"Rotation: {rotation}")
|
||||
else:
|
||||
valid_positions = False
|
||||
|
@ -25,14 +25,13 @@ class ExtrudePanel(ScreenPanel):
|
||||
|
||||
self.speeds = ['1', '2', '5', '25']
|
||||
self.distances = ['5', '10', '15', '25']
|
||||
print_cfg = self._config.get_printer_config(self._screen.connected_printer)
|
||||
if print_cfg is not None:
|
||||
dis = print_cfg.get("extrude_distances", '5, 10, 15, 25')
|
||||
if self.ks_printer_cfg is not None:
|
||||
dis = self.ks_printer_cfg.get("extrude_distances", '5, 10, 15, 25')
|
||||
if re.match(r'^[0-9,\s]+$', dis):
|
||||
dis = [str(i.strip()) for i in dis.split(',')]
|
||||
if 1 < len(dis) < 5:
|
||||
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):
|
||||
vel = [str(i.strip()) for i in vel.split(',')]
|
||||
if 1 < len(vel) < 5:
|
||||
|
@ -24,9 +24,8 @@ class FineTunePanel(ScreenPanel):
|
||||
|
||||
def __init__(self, screen, title, back=True):
|
||||
super().__init__(screen, title, back)
|
||||
print_cfg = self._config.get_printer_config(self._screen.connected_printer)
|
||||
if print_cfg is not None:
|
||||
bs = print_cfg.get("z_babystep_values", "0.01, 0.05")
|
||||
if self.ks_printer_cfg is not None:
|
||||
bs = self.ks_printer_cfg.get("z_babystep_values", "0.01, 0.05")
|
||||
if re.match(r'^[0-9,\.\s]+$', bs):
|
||||
bs = [str(i.strip()) for i in bs.split(',')]
|
||||
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)
|
||||
n += 1
|
||||
extra_item = not self._show_heater_power
|
||||
printer_cfg = self._config.get_printer_config(self._screen.connected_printer)
|
||||
if printer_cfg is not None:
|
||||
titlebar_items = printer_cfg.get("titlebar_items", "")
|
||||
if self.ks_printer_cfg is not None:
|
||||
titlebar_items = self.ks_printer_cfg.get("titlebar_items", "")
|
||||
if titlebar_items is not None:
|
||||
titlebar_items = [str(i.strip()) for i in titlebar_items.split(',')]
|
||||
logging.info(f"Titlebar items: {titlebar_items}")
|
||||
|
@ -199,8 +199,7 @@ class MovePanel(ScreenPanel):
|
||||
|
||||
dist = f"{direction}{self.distance}"
|
||||
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 printer_cfg is None else printer_cfg.getint(config_key, None)
|
||||
speed = None if self.ks_printer_cfg is None else self.ks_printer_cfg.getint(config_key, None)
|
||||
if speed is None:
|
||||
speed = self._config.get_config()['main'].getint(config_key, 20)
|
||||
speed = 60 * max(1, speed)
|
||||
|
@ -72,15 +72,12 @@ class SplashScreenPanel(ScreenPanel):
|
||||
def show_restart_buttons(self):
|
||||
|
||||
self.clear_action_bar()
|
||||
printer = self._screen.connected_printer
|
||||
if printer is not None and self._screen._ws.connected:
|
||||
printer_cfg = self._config.get_printer_config(printer)
|
||||
if printer_cfg is not None:
|
||||
power_devices = printer_cfg.get("power_devices", "")
|
||||
power_devices = [str(i.strip()) for i in power_devices.split(',')]
|
||||
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.ks_printer_cfg is not None and self._screen._ws.connected:
|
||||
power_devices = self.ks_printer_cfg.get("power_devices", "")
|
||||
power_devices = [str(i.strip()) for i in power_devices.split(',')]
|
||||
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:
|
||||
self.labels['actions'].add(self.labels['restart'])
|
||||
|
@ -14,7 +14,6 @@ def create_panel(*args):
|
||||
|
||||
|
||||
class ZCalibratePanel(ScreenPanel):
|
||||
_screen = None
|
||||
widgets = {}
|
||||
distances = ['.01', '.05', '.1', '.5', '1', '5']
|
||||
distance = distances[-2]
|
||||
@ -152,10 +151,9 @@ class ZCalibratePanel(ScreenPanel):
|
||||
x_position = y_position = None
|
||||
z_hop = speed = None
|
||||
# Get position from config
|
||||
printer_cfg = self._config.get_printer_config(self._screen.connected_printer)
|
||||
if printer_cfg is not None:
|
||||
x_position = printer_cfg.getfloat("calibrate_x_position", None)
|
||||
y_position = printer_cfg.getfloat("calibrate_y_position", None)
|
||||
if self.ks_printer_cfg is not None:
|
||||
x_position = self.ks_printer_cfg.getfloat("calibrate_x_position", None)
|
||||
y_position = self.ks_printer_cfg.getfloat("calibrate_y_position", None)
|
||||
elif 'z_calibrate_position' in self._config.get_config():
|
||||
# OLD global way, this should be deprecated
|
||||
x_position = self._config.get_config()['z_calibrate_position'].getfloat("calibrate_x_position", None)
|
||||
|
Loading…
x
Reference in New Issue
Block a user