screen: reinit if necessary, it does make a noticeable difference in slow hw
This commit is contained in:
parent
37e71e17f9
commit
189df7921f
@ -104,6 +104,7 @@ class KlipperScreen(Gtk.Window):
|
|||||||
self.version = version
|
self.version = version
|
||||||
self.dialogs = []
|
self.dialogs = []
|
||||||
self.confirm = None
|
self.confirm = None
|
||||||
|
self.panels_reinit = []
|
||||||
|
|
||||||
configfile = os.path.normpath(os.path.expanduser(args.configfile))
|
configfile = os.path.normpath(os.path.expanduser(args.configfile))
|
||||||
|
|
||||||
@ -260,6 +261,7 @@ class KlipperScreen(Gtk.Window):
|
|||||||
logging.debug("Preloading panels")
|
logging.debug("Preloading panels")
|
||||||
for panel in ['move', 'temperature', 'extrude', 'job_status']:
|
for panel in ['move', 'temperature', 'extrude', 'job_status']:
|
||||||
self.panels[panel] = self._load_panel(panel).Panel(self, title='')
|
self.panels[panel] = self._load_panel(panel).Panel(self, title='')
|
||||||
|
self.panels_reinit.append(panel)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _load_panel(panel):
|
def _load_panel(panel):
|
||||||
@ -276,6 +278,7 @@ class KlipperScreen(Gtk.Window):
|
|||||||
try:
|
try:
|
||||||
if remove_all:
|
if remove_all:
|
||||||
self._remove_all_panels()
|
self._remove_all_panels()
|
||||||
|
self.panels_reinit = list(self.panels)
|
||||||
else:
|
else:
|
||||||
self._remove_current_panel()
|
self._remove_current_panel()
|
||||||
if panel_name not in self.panels:
|
if panel_name not in self.panels:
|
||||||
@ -284,8 +287,10 @@ class KlipperScreen(Gtk.Window):
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.show_error_modal(f"Unable to load panel {panel}", f"{e}")
|
self.show_error_modal(f"Unable to load panel {panel}", f"{e}")
|
||||||
return
|
return
|
||||||
else:
|
elif panel_name in self.panels_reinit:
|
||||||
|
logging.info("Reinitializing panel")
|
||||||
self.panels[panel_name].__init__(self, title, **kwargs)
|
self.panels[panel_name].__init__(self, title, **kwargs)
|
||||||
|
self.panels_reinit.remove(panel_name)
|
||||||
self._cur_panels.append(panel_name)
|
self._cur_panels.append(panel_name)
|
||||||
self.attach_panel(panel_name)
|
self.attach_panel(panel_name)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user