Add support for unbinding sub-menus.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
This commit is contained in:
Roberto Rosario
2017-08-09 01:36:43 -04:00
parent 0ab396eeb8
commit 0efbf79fa1
4 changed files with 69 additions and 7 deletions

View File

@@ -61,6 +61,10 @@ class Menu(object):
def get(cls, name):
return cls._registry[name]
@classmethod
def reset(cls):
cls._registry={}
def __init__(self, name, icon=None, label=None):
if name in self.__class__._registry:
raise Exception('A menu with this name already exists')
@@ -196,7 +200,8 @@ class Menu(object):
for link in self.bound_links.get(None, []):
if isinstance(link, Menu):
resolved_link = link
resolved_links.append(resolved_link)
if resolved_link not in self.unbound_links.get(None, ()):
resolved_links.append(resolved_link)
else:
# "Always show" links
resolved_link = link.resolve(context=context)