diff options
author | Heinrich Wendel <h_wendel@cojobo.net> | 2005-05-28 21:45:42 +0000 |
---|---|---|
committer | Heinrich Wendel <h_wendel@cojobo.net> | 2005-05-28 21:45:42 +0000 |
commit | 3bd02224f011cc77ca5b2fc9bd6cc301aed6dbe7 (patch) | |
tree | 23224b99b14a220388d59c6ffe674265a23af7eb | |
parent | 01f66a654abcb7bf15bef5483d30dc6e70a5d0a3 (diff) |
getTypes()
-rw-r--r-- | xdg/MenuEditor.py | 40 |
1 files changed, 27 insertions, 13 deletions
diff --git a/xdg/MenuEditor.py b/xdg/MenuEditor.py index d0946cc..21726b8 100644 --- a/xdg/MenuEditor.py +++ b/xdg/MenuEditor.py @@ -263,7 +263,7 @@ class MenuEditor: return menu def deleteEntry(self, entry): - if entry.Type == "User": + if "delete" in self.getTypes(entry): try: os.remove(entry.DesktopEntry.filename) except OSError: @@ -276,7 +276,7 @@ class MenuEditor: return entry def revertEntry(self, entry): - if entry.Type == "Both": + if "revert" in self.getTypes(entry): try: os.remove(entry.DesktopEntry.filename) except OSError: @@ -290,18 +290,19 @@ class MenuEditor: return entry def deleteMenu(self, menu): - if self.__isUserMenu(menu) == True: + if "delete" in self.getTypes(menu): try: os.remove(menu.Directory.DesktopEntry.filename) except OSError: pass - menu.Directory = None + menu.Parent.Entries.remove(menu) + menu.Parent.Submenus.remove(menu) xml_menu = self.__getXmlMenu(menu.getPath(True, True)) xml_menu.parentNode.removeChild(xml_menu) return menu def revertMenu(self, menu): - if menu.Directory.Type == "Both" or self.__isUserMenu(menu) == True: + if "revert" in self.getTypes(menu): try: os.remove(menu.Directory.DesktopEntry.filename) except OSError: @@ -472,14 +473,27 @@ class MenuEditor: return layout - def __isUserMenu(self, menu): - if menu.Directory.Type == "User": - xml_menu = self.__getXmlMenu(menu.getPath(True, True), False) - if not xml_menu: - return False - if len(self.__getNodesByName("Directory", xml_menu)) > 0: - return True - return False + def getTypes(self, entry): + if isinstance(entry, Menu): + if entry.Directory.Type == "Both": + return "revert" + elif entry.Directory.Type == "User": + xml_menu = self.__getXmlMenu(entry.getPath(True, True), False) + if not xml_menu: + return "revert" + else: + if len(self.__getNodesByName("Directory", xml_menu)) > 0: + return ["delete", "revert"] + else: + return "delete" + + elif isinstance(entry, MenuEntry): + if entry.Type == "Both": + return "revert" + elif entry.Ttype == "User": + return "delete" + + return "none" def __getNodesByName(self, name, element): if not element: |