From 0f97f6e32c766125152391fcd0a8589c6026968e Mon Sep 17 00:00:00 2001 From: alfrix Date: Fri, 24 Mar 2023 08:35:11 -0600 Subject: [PATCH] menu: don't create items if enable is false, previously it was just not shown --- panels/menu.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/panels/menu.py b/panels/menu.py index ea1cad2b..2f9b6144 100644 --- a/panels/menu.py +++ b/panels/menu.py @@ -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)