forked from CreatBot/CreatBotKlipperScreen
Merge branch 'configfile'
This commit is contained in:
39
screen.py
39
screen.py
@@ -22,6 +22,8 @@ from files import KlippyFiles
|
||||
from KlippyGtk import KlippyGtk
|
||||
from printer import Printer
|
||||
|
||||
from ks_includes.config import KlipperScreenConfig
|
||||
|
||||
# Do this better in the future
|
||||
from panels.screen_panel import *
|
||||
from panels.bed_level import *
|
||||
@@ -76,7 +78,7 @@ class KlipperScreen(Gtk.Window):
|
||||
printer = None
|
||||
|
||||
def __init__(self):
|
||||
self.read_config()
|
||||
self._config = KlipperScreenConfig()
|
||||
self.init_style()
|
||||
self.printer = Printer({
|
||||
'configfile': {
|
||||
@@ -240,19 +242,6 @@ class KlipperScreen(Gtk.Window):
|
||||
def error_modal_response(self, widget, response_id):
|
||||
widget.destroy()
|
||||
|
||||
def read_config (self):
|
||||
try:
|
||||
with open(config) as config_file:
|
||||
self._config = json.load(config_file)
|
||||
lines = [
|
||||
"===== Config File =====",
|
||||
json.dumps(self._config, indent=2),
|
||||
"=======================",
|
||||
]
|
||||
logger.info("\n".join(lines))
|
||||
except:
|
||||
logger.exception("Error reading configuration file")
|
||||
|
||||
|
||||
def init_style(self):
|
||||
style_provider = Gtk.CssProvider()
|
||||
@@ -271,15 +260,19 @@ class KlipperScreen(Gtk.Window):
|
||||
# Find current menu item
|
||||
panels = list(self._cur_panels)
|
||||
if "job_status" not in self._cur_panels:
|
||||
cur_item = self._find_current_menu_item(name, self._config['mainmenu'], panels.pop(0))
|
||||
menu = cur_item['items']
|
||||
menu = "__main"
|
||||
else:
|
||||
menu = self._config['printmenu']
|
||||
menu = "__print"
|
||||
|
||||
logger.info("#### Menu " + str(menu))
|
||||
#self.show_panel("_".join(self._cur_panels) + '_' + name, "menu", 1, False, menu=menu)
|
||||
|
||||
self.show_panel(self._cur_panels[-1] + '_' + name, "menu", 1, False, items=menu)
|
||||
menuitems = self._config.get_menu_items(menu, name)
|
||||
if len(menuitems) == 0:
|
||||
logger.info("No items in menu, returning.")
|
||||
return
|
||||
|
||||
self.show_panel(self._cur_panels[-1] + '_' + name, "menu", 1, False, items=menuitems)
|
||||
return
|
||||
|
||||
grid = self.arrangeMenuItems(menu, 4)
|
||||
@@ -293,14 +286,6 @@ class KlipperScreen(Gtk.Window):
|
||||
self.add(self.panels[cur_item['name']])
|
||||
self.show_all()
|
||||
|
||||
|
||||
|
||||
def _find_current_menu_item(self, menu, items, names):
|
||||
for item in items:
|
||||
if item['name'] == menu:
|
||||
return item
|
||||
#TODO: Add error check
|
||||
|
||||
def _remove_all_panels(self):
|
||||
while len(self._cur_panels) > 0:
|
||||
self._remove_current_panel()
|
||||
@@ -442,7 +427,7 @@ class KlipperScreen(Gtk.Window):
|
||||
return
|
||||
|
||||
self.files.add_timeout()
|
||||
self.show_panel('main_panel', "MainPanel", 2, items=self._config['mainmenu'], extrudercount=self.printer.get_extruder_count())
|
||||
self.show_panel('main_panel', "MainPanel", 2, items=self._config.get_menu_items("__main"), extrudercount=self.printer.get_extruder_count())
|
||||
|
||||
def printer_printing(self):
|
||||
self.ws_subscribe()
|
||||
|
Reference in New Issue
Block a user