]> git.ipfire.org Git - people/ms/westferry.git/commitdiff
menus: Drop sub-menu class
authorMichael Tremer <michael.tremer@ipfire.org>
Wed, 1 Dec 2021 18:48:42 +0000 (18:48 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Wed, 1 Dec 2021 18:48:42 +0000 (18:48 +0000)
Menus can now be stacked

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/westferry/handlers/analytics.py
src/westferry/ui/menu.py

index 5afd4299dae1d912e1e339052237147b07e0d83f..5c74549026c0be4df6100de78a76ce9cf3aec107 100644 (file)
@@ -103,7 +103,7 @@ class AnalyticsNetworkConnectionsBaseHandler(AnalyticsBaseHandler):
                m.add_handler(AnalyticsNetworkConnectionsOverviewHandler, title=_("Overview"))
 
                # Protocol States
-               s = m.add_submenu(_("Procotol States"))
+               s = m.add_menu(_("Procotol States"))
                s.add_handler(AnalyticsNetworkConnectionsStatesTCPHandler)
                s.add_handler(AnalyticsNetworkConnectionsStatesSCTPHandler)
                s.add_handler(AnalyticsNetworkConnectionsStatesDCCPHandler)
@@ -202,7 +202,7 @@ class AnalyticsSystemBaseHandler(AnalyticsBaseHandler):
                m.add_handler(AnalyticsSystemTemperaturesHandler)
 
                # Others
-               s = m.add_submenu(_("More"))
+               s = m.add_menu(_("More"))
                s.add_handler(AnalyticsSystemEntropyHandler)
                s.add_handler(AnalyticsSystemContextSwitchesHandler)
                s.add_handler(AnalyticsSystemInterruptsHandler)
index 81a5d515ce39daa83f6d0ad81eff61fee4ae1b04..a0ca571590ce720a4b289dfebf98bcfdc1d4abdf 100644 (file)
@@ -58,9 +58,24 @@ class MenuLink(MenuItem):
                return isinstance(self.menu.handler, self.handler)
 
 
-class MenuMixin(object):
+class Menu(object):
+       """
+               The main menu object that creates a little menu on the side
+       """
        type = "menu"
 
+       def __init__(self, handler, title=None, parent=None):
+               self.handler = handler
+               self.title = title
+               self.parent = parent
+
+       @property
+       def locale(self):
+               """
+                       Shortcut to access the user's locale
+               """
+               return self.handler.locale
+
        @property
        def items(self):
                if not hasattr(self, "_items"):
@@ -74,6 +89,9 @@ class MenuMixin(object):
                """
                return iter(self.items)
 
+       def is_active(self):
+               return False
+
        def add_handler(self, handler, title=None, **kwargs):
                """
                        Automatically adds a handler to the menu
@@ -101,61 +119,14 @@ class MenuMixin(object):
 
                return link
 
-       def add_submenu(self, *args, **kwargs):
-               """
-                       Adds a submenu to the menu
-               """
-               kwargs.update({
-                       "menu" : self,
-               })
-
-               submenu = SubMenu(*args, **kwargs)
-               self.items.append(submenu)
-
-               return submenu
-
-
-class Menu(MenuMixin):
-       """
-               The main menu object that creates a little menu on the side
-       """
-       def __init__(self, handler, title=None):
-               self.handler = handler
-               self.title = title
-
-       @property
-       def locale(self):
-               """
-                       Shortcut to access the user's locale
-               """
-               return self.handler.locale
-
-
-
-class SubMenu(MenuItem, MenuMixin):
-       """
-               A sub menu in the side menu
-       """
-
-       type = "menu"
-
-       def __init__(self, title, menu=None):
-               self.title = title
-               self.menu = menu
-
-       @property
-       def locale(self):
+       def add_menu(self, title, **kwargs):
                """
-                       Shortcut to access the user's locale
+                       Adds a sub-menu to the menu
                """
-               return self.menu.locale
+               menu = Menu(self.handler, parent=self, title=title, **kwargs)
+               self.items.append(menu)
 
-       @property
-       def handler(self):
-               """
-                       Shortcut to the handler of the main menu
-               """
-               return self.menu.handler
+               return menu
 
 
 class SidebarMenuModule(base.BaseUIModule):