@@ -88,6 +88,7 @@ def save(self, from_loading=False):
8888 with codecs .open (getattr (self , menu ).path , 'w' , 'utf-8' ) as f :
8989 f .write (getattr (self , menu ).dom .toprettyxml ())
9090 if not from_loading :
91+ self .load ()
9192 self .__loadMenus ()
9293
9394 def quit (self ):
@@ -425,11 +426,9 @@ def moveMenu(self, menu, new_parent, before=None, after=None):
425426 if menu .get_parent () != new_parent :
426427 dom = self .__getMenu (menu ).dom
427428 path = self .__getPath (menu )
428- root_path = path [0 ]
429- xml_root = self .__getXmlMenu (root_path , dom .documentElement , dom )
430- old_path = path [1 :]
431- new_path = self .__getPath (new_parent )[1 :] + [menu .get_menu_id ()]
432- self .__addXmlMove (xml_root , '/' .join (old_path ), '/' .join (new_path ), dom )
429+ xml_root = self .__getXmlMenu (path [0 ], dom .documentElement , dom )
430+ new_path = self .__getPath (new_parent ) + [menu .get_menu_id ()]
431+ self .__addXmlMove (xml_root , '/' .join (path ), '/' .join (new_path ), dom )
433432 self .__positionItem (new_parent , menu , before , after )
434433 self .__addUndo ([self .__getMenu (new_parent ),])
435434 self .save ()
@@ -578,6 +577,8 @@ def __getXmlMenuPart(self, element, name):
578577 return None
579578
580579 def __getXmlMenu (self , path , element , dom ):
580+ if isinstance (path , str ):
581+ return element
581582 for name in path :
582583 found = self .__getXmlMenuPart (element , name )
583584 if found is not None :
0 commit comments