Skip to content
Permalink
Browse files

Fix moving a menu corrupting the menu

  • Loading branch information...
gm10 authored and raveit65 committed Feb 19, 2019
1 parent 7a677fe commit 30caedb0c53281859d7fb724dea9cd96c796990c
Showing with 6 additions and 5 deletions.
  1. +6 −5 Mozo/MenuEditor.py
@@ -88,6 +88,7 @@ def save(self, from_loading=False):
with codecs.open(getattr(self, menu).path, 'w', 'utf-8') as f:
f.write(getattr(self, menu).dom.toprettyxml())
if not from_loading:
self.load()
self.__loadMenus()

def quit(self):
@@ -425,11 +426,9 @@ def moveMenu(self, menu, new_parent, before=None, after=None):
if menu.get_parent() != new_parent:
dom = self.__getMenu(menu).dom
path = self.__getPath(menu)
root_path = path[0]
xml_root = self.__getXmlMenu(root_path, dom.documentElement, dom)
old_path = path[1:]
new_path = self.__getPath(new_parent)[1:] + [menu.get_menu_id()]
self.__addXmlMove(xml_root, '/'.join(old_path), '/'.join(new_path), dom)
xml_root = self.__getXmlMenu(path[0], dom.documentElement, dom)
new_path = self.__getPath(new_parent) + [menu.get_menu_id()]
self.__addXmlMove(xml_root, '/'.join(path), '/'.join(new_path), dom)
self.__positionItem(new_parent, menu, before, after)
self.__addUndo([self.__getMenu(new_parent),])
self.save()
@@ -578,6 +577,8 @@ def __getXmlMenuPart(self, element, name):
return None

def __getXmlMenu(self, path, element, dom):
if isinstance(path, str):
return element
for name in path:
found = self.__getXmlMenuPart(element, name)
if found is not None:

0 comments on commit 30caedb

Please sign in to comment.
You can’t perform that action at this time.