use only one jinja env
slightly improves performance
This commit is contained in:
parent
dbe3f03019
commit
2241b54153
@ -6,7 +6,7 @@ import json
|
||||
|
||||
gi.require_version("Gtk", "3.0")
|
||||
from gi.repository import Gtk
|
||||
from jinja2 import Environment, Template
|
||||
from jinja2 import Template
|
||||
|
||||
from ks_includes.screen_panel import ScreenPanel
|
||||
|
||||
@ -75,26 +75,23 @@ class MenuPanel(ScreenPanel):
|
||||
key = list(self.items[i])[0]
|
||||
item = self.items[i][key]
|
||||
|
||||
env = Environment(extensions=["jinja2.ext.i18n"], autoescape=True)
|
||||
env.install_gettext_translations(self._config.get_lang())
|
||||
|
||||
printer = self._printer.get_printer_status_data()
|
||||
|
||||
name = env.from_string(item['name']).render(printer)
|
||||
icon = env.from_string(item['icon']).render(printer) if item['icon'] else None
|
||||
style = env.from_string(item['style']).render(printer) if item['style'] else None
|
||||
name = self._screen.env.from_string(item['name']).render(printer)
|
||||
icon = self._screen.env.from_string(item['icon']).render(printer) if item['icon'] else None
|
||||
style = self._screen.env.from_string(item['style']).render(printer) if item['style'] else None
|
||||
|
||||
b = self._gtk.Button(icon, name, style or f"color{i % 4 + 1}")
|
||||
|
||||
if item['panel'] is not None:
|
||||
panel = env.from_string(item['panel']).render(printer)
|
||||
panel = self._screen.env.from_string(item['panel']).render(printer)
|
||||
b.connect("clicked", self.menu_item_clicked, panel, item)
|
||||
elif item['method'] is not None:
|
||||
params = {}
|
||||
|
||||
if item['params'] is not False:
|
||||
try:
|
||||
p = env.from_string(item['params']).render(printer)
|
||||
p = self._screen.env.from_string(item['params']).render(printer)
|
||||
params = json.loads(p)
|
||||
except Exception as e:
|
||||
logging.exception(f"Unable to parse parameters for [{name}]:\n{e}")
|
||||
|
@ -109,6 +109,8 @@ class KlipperScreen(Gtk.Window):
|
||||
|
||||
self._config = KlipperScreenConfig(configfile, self)
|
||||
self.lang_ltr = set_text_direction(self._config.get_main_config().get("language", None))
|
||||
self.env = Environment(extensions=["jinja2.ext.i18n"], autoescape=True)
|
||||
self.env.install_gettext_translations(self._config.get_lang())
|
||||
|
||||
self.connect("key-press-event", self._key_press_event)
|
||||
self.connect("configure_event", self.update_size)
|
||||
@ -681,6 +683,7 @@ class KlipperScreen(Gtk.Window):
|
||||
def change_language(self, widget, lang):
|
||||
self._config.install_language(lang)
|
||||
self.lang_ltr = set_text_direction(lang)
|
||||
self.env.install_gettext_translations(self._config.get_lang())
|
||||
self._config._create_configurable_options(self)
|
||||
self.reload_panels()
|
||||
|
||||
@ -750,9 +753,7 @@ class KlipperScreen(Gtk.Window):
|
||||
]
|
||||
|
||||
try:
|
||||
env = Environment(extensions=["jinja2.ext.i18n"], autoescape=True)
|
||||
env.install_gettext_translations(self._config.get_lang())
|
||||
j2_temp = env.from_string(text)
|
||||
j2_temp = self.env.from_string(text)
|
||||
text = j2_temp.render()
|
||||
except Exception as e:
|
||||
logging.debug(f"Error parsing jinja for confirm_send_action\n{e}")
|
||||
|
Loading…
x
Reference in New Issue
Block a user