menu: don't create items if enable is false, previously it was just not shown

This commit is contained in:
alfrix 2023-03-24 08:35:11 -06:00
parent da9f970231
commit 0f97f6e32c

View File

@ -25,6 +25,11 @@ class MenuPanel(ScreenPanel):
self.grid = self._gtk.HomogeneousGrid()
def initialize(self, items):
for item in items:
key = next(iter(item))
if not self.evaluate_enable(item[key]['enable']):
logging.debug(f"X > {key}")
items.remove(item)
self.items = items
self.create_menu_items()
scroll = self._gtk.ScrolledWindow()
@ -43,12 +48,8 @@ class MenuPanel(ScreenPanel):
self.grid.remove(child)
length = len(items)
i = 0
for item in items:
for i, item in enumerate(items):
key = list(item)[0]
if not self.evaluate_enable(item[key]['enable']):
logging.debug(f"X > {key}")
continue
if columns == 4:
if length <= 4:
@ -66,7 +67,6 @@ class MenuPanel(ScreenPanel):
width = 2
self.grid.attach(self.labels[key], col, row, width, height)
i += 1
self.j2_data = None
return self.grid
@ -84,7 +84,7 @@ class MenuPanel(ScreenPanel):
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
b = self._gtk.Button(icon, name, (style if style else f"color{(i % 4) + 1}"))
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)