§
    Öu•cíI  ã                   ó°   — d Z ddlZ	 ddlmc mZ n# e$ r ddlmc mZ Y nw xY wddlm	Z	m
Z
mZmZmZ ddlmZmZ ddlmZ ddlmZ  G d„ de¦  «        ZdS )	z CLass to edit XDG Menus é    N)ÚMenuÚ	MenuEntryÚLayoutÚ	SeparatorÚXMLMenuBuilder)Úxdg_config_dirsÚxdg_data_dirs)ÚParsingError)ÚsetRootModec                   ó  — e Zd Zd+d„Zd+d„Zd„ Zd,d„Zd-d„Zd.d„Zd.d	„Z	d.d
„Z
d.d„Zd.d„Zd/d„Zd0d„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	 d„ Zd„ Zd„ Zd„ Zd1d„Zd„ Zd„ Zd2d!„Zd"„ Z d#„ Z!d$„ Z"d.d%„Z#d.d&„Z$d'„ Z%d(„ Z&d)„ Z'd*„ Z(dS )3Ú
MenuEditorNFc                 ó’   — d | _         d | _        d | _        t          ¦   «         | _        |                      |||¦  «         g | _        d S ©N)ÚmenuÚfilenameÚtreer   ÚparserÚparseÚ	filenames©Úselfr   r   Úroots       ú0/usr/lib/python3/dist-packages/xdg/MenuEditor.pyÚ__init__zMenuEditor.__init__   sG   € ØˆŒ	ØˆŒØˆŒ	Ý$Ñ&Ô&ˆŒØ�
Š
�4˜ 4Ñ(Ô(Ð(ð ˆŒˆˆó    c                 ó  — |rt          d¦  «         t          |t          ¦  «        r|| _        n@|r | j                             |¦  «        | _        n| j                             ¦   «         | _        |r| j        j        | _        nh|r|| _        n^t          j	         
                    t          d         dt          j	                             | j        j        ¦  «        d         ¦  «        | _        	 t          j        | j        ¦  «        | _        nh# t          $ r= t          j        d| j        j        z  ¦  «        }t          j        |¦  «        | _        Y n"t$          $ r t%          d| j        ¦  «        ‚w xY w|                      | j        ¦  «         d S )NTr   Úmenusé   zÞ
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN" "http://standards.freedesktop.org/menu-spec/menu-1.0.dtd">
    <Menu>
        <Name>Applications</Name>
        <MergeFile type="parent">%s</MergeFile>
    </Menu>
zNot a valid .menu file)r   Ú
isinstancer   r   r   r   ÚFilenamer   ÚosÚpathÚjoinr   ÚsplitÚetreer   ÚIOErrorÚ
fromstringÚElementTreer
   Ú$_MenuEditor__remove_whitespace_nodesr   s       r   r   zMenuEditor.parse$   s†  € Øð 	Ý˜ÑÔÐå�d�DÑ!Ô!ð 	,ØˆDŒIˆIØð 	,Øœ×)Ò)¨$Ñ/Ô/ˆDŒIˆIàœ×)Ò)Ñ+Ô+ˆDŒIàð 	lØ œIÔ.ˆDŒMˆMØð 	lØ$ˆDŒMˆMåœGŸLšL­¸Ô);¸WÅbÄgÇmÂmÐTXÔT]ÔTfÑFgÔFgÐhiÔFjÑkÔkˆDŒMð	HÝœ D¤MÑ2Ô2ˆDŒIˆIøÝð 	0ð 	0ð 	0ÝÔ#ð %ð „iÔñ%ñ ô ˆDõ Ô)¨$Ñ/Ô/ˆDŒIˆIˆIÝð 	Hð 	Hð 	HÝÐ7¸¼ÑGÔGÐGð	Høøøð 	×&Ò& t¤yÑ1Ô1Ð1Ð1Ð1s   Ã,D ÄAE0ÅE0c                 ób   — |                       | j        ¦  «         |                      ¦   «          d S r   )Ú_MenuEditor__saveEntriesr   Ú_MenuEditor__saveMenu©r   s    r   ÚsavezMenuEditor.saveG   s.   € Ø×Ò˜4œ9Ñ%Ô%Ð%Ø�ŠÑÔÐÐÐr   c
           	      óä   — t          |                      |d¦  «        ¦  «        }
|                      |
||||||¦  «        }
|                      ||
||	¦  «         | j                             ¦   «          |
S )Nú.desktop)r   Ú_MenuEditor__getFileNameÚeditMenuEntryÚ_MenuEditor__addEntryr   Úsort)r   ÚparentÚnameÚcommandÚgenericnameÚcommentÚiconÚterminalÚafterÚbeforeÚ	menuentrys              r   ÚcreateMenuEntryzMenuEditor.createMenuEntryK   sp   € Ý˜d×0Ò0°°zÑBÔBÑCÔCˆ	Ø×&Ò& y°$¸ÀWÈgÐW[Ð]eÑfÔfˆ	à�Š˜ 	¨5°&Ñ9Ô9Ð9àŒ	�ŠÑÔÐàÐr   c                 ó  — t          ¦   «         }||_        |j        dz   |_        |j        |_        |j        |_        |                      |||||¦  «        }|                      ||||¦  «         | j                             ¦   «          |S )Nr   )	r   ÚParentÚDepthÚDefaultLayoutr   ÚeditMenur3   r   r4   )	r   r5   r6   r8   r9   r:   r<   r=   r   s	            r   Ú
createMenuzMenuEditor.createMenuU   s}   € Ý‰vŒvˆàˆŒØ”\ AÑ%ˆŒ
ØÔ*ˆŒØ#Ô1ˆÔà�}Š}˜T 4¨°g¸tÑDÔDˆà�Š˜  e¨VÑ4Ô4Ð4àŒ	�ŠÑÔÐàˆr   c                 ó†   — t          |¦  «        }|                      ||||¦  «         | j                             ¦   «          |S r   )r   r3   r   r4   )r   r5   r<   r=   Ú	separators        r   ÚcreateSeparatorzMenuEditor.createSeparatore   s?   € Ý˜fÑ%Ô%ˆ	à�Š˜ 	¨5°&Ñ9Ô9Ð9àŒ	�ŠÑÔÐàÐr   c                 ó˜   — |                       ||||¦  «         |                      ||||¦  «         | j                             ¦   «          |S r   ©Ú_MenuEditor__deleteEntryr3   r   r4   ©r   r>   Ú	oldparentÚ	newparentr<   r=   s         r   ÚmoveMenuEntryzMenuEditor.moveMenuEntryn   sL   € Ø×Ò˜9 i°¸Ñ?Ô?Ð?Ø�Š˜	 9¨e°VÑ<Ô<Ð<àŒ	�ŠÑÔÐàÐr   c           	      ó4  — |                       ||||¦  «         |                      ||||¦  «         |                      | j        j        ¦  «        }|                     d¦  «        |                     d¦  «        k    rƒ|                      |t          j         	                    |                     d¦  «        |j        ¦  «        t          j         	                    |                     d¦  «        |j        ¦  «        ¦  «         | j         
                    ¦   «          |S )NT)rK   r3   Ú_MenuEditor__getXmlMenur   ÚNameÚgetPathÚ_MenuEditor__addXmlMover!   r"   r#   r4   )r   r   rM   rN   r<   r=   Ú	root_menus          r   ÚmoveMenuzMenuEditor.moveMenuv   s  € Ø×Ò˜9 d¨E°6Ñ:Ô:Ð:Ø�Š˜	 4¨°Ñ7Ô7Ð7à×%Ò% d¤i¤nÑ5Ô5ˆ	Ø×Ò˜TÑ"Ô" i×&7Ò&7¸Ñ&=Ô&=Ò=Ð=Ø×Ò˜i­¬¯ª°i×6GÒ6GÈÑ6MÔ6MÈtÌyÑ)YÔ)YÕ[]Ô[b×[gÒ[gÐhq×hyÒhyÐz~ÑhÔhð  BFô  BKñ  \Lô  \Lñ  Mô  Mð  MàŒ	�ŠÑÔÐàˆr   c                 ó˜   — |                       ||||¦  «         |                      ||||¦  «         | j                             ¦   «          |S r   rJ   )r   rG   r5   r<   r=   s        r   ÚmoveSeparatorzMenuEditor.moveSeparator‚   sL   € Ø×Ò˜6 9¨e°VÑ<Ô<Ð<Ø�Š˜ 	¨5°&Ñ9Ô9Ð9àŒ	�ŠÑÔÐàÐr   c                 óh   — |                       ||||¦  «         | j                             ¦   «          |S r   )r3   r   r4   rL   s         r   ÚcopyMenuEntryzMenuEditor.copyMenuEntryŠ   s2   € Ø�Š˜	 9¨e°VÑ<Ô<Ð<àŒ	�ŠÑÔÐàÐr   c
                 óÒ  — |j         }
|rC|
                     d¦  «        s|
                     d|¦  «         |
                     d|d¬¦  «         |rC|
                     d¦  «        s|
                     d|¦  «         |
                     d|d¬¦  «         |rC|
                     d¦  «        s|
                     d|¦  «         |
                     d|d¬¦  «         |r|
                     d|¦  «         |r|
                     d|¦  «         |r|
                     dd	¦  «         n|s|
                     dd
¦  «         |du r|
                     dd	¦  «         n|du r|
                     dd
¦  «         |	du r|
                     dd	¦  «         n|	du r|
                     dd
¦  «         |                     ¦   «          t	          |j        ¦  «        dk    r| j                             ¦   «          |S )NrR   T©ÚlocaleÚCommentÚGenericNameÚExecÚIconÚTerminalÚtrueÚfalseÚ	NoDisplayFÚHiddenr   )ÚDesktopEntryÚhasKeyÚsetÚupdateAttributesÚlenÚParentsr   r4   )r   r>   r6   r8   r9   r7   r:   r;   Ú	nodisplayÚhiddenÚ	deskentrys              r   r2   zMenuEditor.editMenuEntry‘   s  € ØÔ*ˆ	àð 	5Ø×#Ò# FÑ+Ô+ð ,Ø—’˜f dÑ+Ô+Ð+Ø�MŠM˜& $¨tˆMÑ4Ô4Ð4Øð 	;Ø×#Ò# IÑ.Ô.ð 2Ø—’˜i¨Ñ1Ô1Ð1Ø�MŠM˜) W°TˆMÑ:Ô:Ð:Øð 	CØ×#Ò# MÑ2Ô2ð :Ø—’˜m¨[Ñ9Ô9Ð9Ø�MŠM˜-¨¸TˆMÑBÔBÐBØð 	+Ø�MŠM˜& 'Ñ*Ô*Ð*Øð 	(Ø�MŠM˜& $Ñ'Ô'Ð'àð 	/Ø�MŠM˜* fÑ-Ô-Ð-Ð-Øð 	/Ø�MŠM˜* gÑ.Ô.Ð.à˜ÐÐØ�MŠM˜+ vÑ.Ô.Ð.Ð.Ø˜%ÐÐØ�MŠM˜+ wÑ/Ô/Ð/à�Tˆ>ˆ>Ø�MŠM˜( FÑ+Ô+Ð+Ð+Ø�uˆ_ˆ_Ø�MŠM˜( GÑ,Ô,Ð,à×"Ò"Ñ$Ô$Ð$åˆyÔ Ñ!Ô! AÒ%Ð%ØŒI�NŠNÑÔÐàÐr   c                 ó  — t          |j        t          ¦  «        r{|j        j        dk    rk|                      |                     dd¦  «        ¦  «        }|                      |d|j        dz   ¦  «         |j                             |j        dz   ¦  «         nÃt          |j        t          ¦  «        s©|s|j        }|  	                    |d¦  «         
                    dd¦  «        }	|j        s|	 
                    dd¦  «        |_        |                      |                     dd¦  «        ¦  «        }|                      |d|	¦  «         t          |	¦  «        |_        |j        j        }
|rC|
                     d¦  «        s|
                     d|¦  «         |
                     d|d¬¦  «         |rC|
                     d¦  «        s|
                     d|¦  «         |
                     d|d¬¦  «         |rC|
                     d	¦  «        s|
                     d	|¦  «         |
                     d	|d¬¦  «         |r|
                     d
|¦  «         |du r|
                     dd¦  «         n|du r|
                     dd¦  «         |du r|
                     dd¦  «         n|du r|
                     dd¦  «         |j                             ¦   «          t          |j        t           ¦  «        r| j                             ¦   «          |S )Nú
.directoryTÚ	Directoryú/Ú rR   r\   r_   r^   ra   re   rc   Frd   rf   )r   rr   r   r    rQ   rS   Ú_MenuEditor__addXmlTextElementrR   ÚsetAttributesr1   Úreplacerg   rh   ri   rj   rA   r   r   r4   )r   r   r6   r8   r9   r:   rm   rn   Úxml_menur   ro   s              r   rD   zMenuEditor.editMenu»   sù  € å�d”n¥iÑ0Ô0ð 	1°T´^Ô5LÐP\Ò5\Ð5\Ø×(Ò(¨¯ª°d¸DÑ)AÔ)AÑBÔBˆHØ×$Ò$ X¨{¸D¼IÈÑ<TÑUÔUÐUØŒN×(Ò(¨¬°\Ñ)AÑBÔBÐBÐBå˜DœN­IÑ6Ô6ð 	1Øð !Ø”y�Ø×)Ò)¨$°Ñ=Ô=×EÒEÀcÈ2ÑNÔNˆHØ”9ð ?Ø$×,Ò,¨\¸2Ñ>Ô>�”	Ø×(Ò(¨¯ª°d¸DÑ)AÔ)AÑBÔBˆHØ×$Ò$ X¨{¸HÑEÔEÐEÝ& xÑ0Ô0ˆDŒNà”NÔ/ˆ	àð 	5Ø×#Ò# FÑ+Ô+ð ,Ø—’˜f dÑ+Ô+Ð+Ø�MŠM˜& $¨tˆMÑ4Ô4Ð4Øð 	CØ×#Ò# MÑ2Ô2ð :Ø—’˜m¨[Ñ9Ô9Ð9Ø�MŠM˜-¨¸TˆMÑBÔBÐBØð 	;Ø×#Ò# IÑ.Ô.ð 2Ø—’˜i¨Ñ1Ô1Ð1Ø�MŠM˜) W°TˆMÑ:Ô:Ð:Øð 	(Ø�MŠM˜& $Ñ'Ô'Ð'à˜ÐÐØ�MŠM˜+ vÑ.Ô.Ð.Ð.Ø˜%ÐÐØ�MŠM˜+ wÑ/Ô/Ð/à�Tˆ>ˆ>Ø�MŠM˜( FÑ+Ô+Ð+Ð+Ø�uˆ_ˆ_Ø�MŠM˜( GÑ,Ô,Ð,àŒ×'Ò'Ñ)Ô)Ð)å�d”k¥4Ñ(Ô(ð 	ØŒI�NŠNÑÔÐàˆr   c                 ó4   — |                       |d¬¦  «         d S ©NT)rm   ©r2   ©r   r>   s     r   ÚhideMenuEntryzMenuEditor.hideMenuEntryî   s!   € Ø×Ò˜9°ÐÑ5Ô5Ð5Ð5Ð5r   c                 ó6   — |                       |dd¬¦  «         d S )NF©rm   rn   r{   r|   s     r   ÚunhideMenuEntryzMenuEditor.unhideMenuEntryñ   s#   € Ø×Ò˜9°¸eÐÑDÔDÐDÐDÐDr   c                 ó4   — |                       |d¬¦  «         d S rz   )rD   ©r   r   s     r   ÚhideMenuzMenuEditor.hideMenuô   s   € Ø�Š�d dˆÑ+Ô+Ð+Ð+Ð+r   c                 ó  — |                       |dd¬¦  «         |                      |                     dd¦  «        d¦  «        }|                     d¦  «        }|                     d¦  «        }||z   D ]}|                     |¦  «         Œd S )NFr   TÚDeletedÚ
NotDeleted)rD   rQ   rS   ÚfindallÚremove)r   r   rx   ÚdeletedÚnot_deletedÚnodes         r   Ú
unhideMenuzMenuEditor.unhideMenu÷   s–   € Ø�Š�d e°EˆÑ:Ô:Ð:Ø×$Ò$ T§\¢\°$¸Ñ%=Ô%=¸uÑEÔEˆØ×"Ò" 9Ñ-Ô-ˆØ×&Ò& |Ñ4Ô4ˆØ˜kÑ)ð 	"ð 	"ˆDØ�OŠO˜DÑ!Ô!Ð!Ð!ð	"ð 	"r   c                 óè   — |                       |¦  «        dk    rX|                      |j        j        ¦  «         |j        D ]}|                      ||¦  «         Œ| j                             ¦   «          |S )NÚdelete)Ú	getActionÚ_MenuEditor__deleteFilerg   r   rl   rK   r   r4   )r   r>   r5   s      r   ÚdeleteMenuEntryzMenuEditor.deleteMenuEntryÿ   sv   € Ø�>Š>˜)Ñ$Ô$¨Ò0Ð0Ø×Ò˜iÔ4Ô=Ñ>Ô>Ð>Ø#Ô+ð 6ð 6�Ø×"Ò" 6¨9Ñ5Ô5Ð5Ð5ØŒI�NŠNÑÔÐØÐr   c                 ó¶  — |                       |¦  «        dk    r¿|                      |j        j        ¦  «         g |j        _        |j        D ]s}|j                             |¦  «        }|j        |j        |<   |j                             |¦  «        }|j        |j        |<   |j        j         	                    |¦  «         Œt| j
                             ¦   «          |S ©NÚrevert)r�   r�   rg   r   ÚOriginalrl   ÚEntriesÚindexÚMenuEntriesÚappendr   r4   )r   r>   r5   r—   s       r   ÚrevertMenuEntryzMenuEditor.revertMenuEntry  sÏ   € Ø�>Š>˜)Ñ$Ô$¨Ò0Ð0Ø×Ò˜iÔ4Ô=Ñ>Ô>Ð>Ø)+ˆIÔÔ&Ø#Ô+ð :ð :�Øœ×,Ò,¨YÑ7Ô7�Ø(1Ô(:�”˜uÑ%ØÔ*×0Ò0°Ñ;Ô;�Ø,5Ô,>�Ô" 5Ñ)ØÔ"Ô*×1Ò1°&Ñ9Ô9Ð9Ð9ØŒI�NŠNÑÔÐØÐr   c                 óŽ  — |                       |¦  «        dk    r«|                      |j        j        j        ¦  «         |                      |j        |¦  «         |                      |                     dd¦  «        ¦  «        }|  	                    |¦  «        }| 
                    |¦  «         | j                             ¦   «          |S )NrŽ   T)r�   r�   rr   rg   r   rK   rA   rQ   rS   Ú_MenuEditor__get_parent_noderˆ   r   r4   )r   r   rx   r5   s       r   Ú
deleteMenuzMenuEditor.deleteMenu  sª   € Ø�>Š>˜$ÑÔ 8Ò+Ð+Ø×Ò˜dœnÔ9ÔBÑCÔCÐCØ×Ò˜tœ{¨DÑ1Ô1Ð1Ø×(Ò(¨¯ª°d¸DÑ)AÔ)AÑBÔBˆHØ×+Ò+¨HÑ5Ô5ˆFØ�MŠM˜(Ñ#Ô#Ð#ØŒI�NŠNÑÔÐØˆr   c                 óÔ   — |                       |¦  «        dk    rN|                      |j        j        j        ¦  «         |j        j        |_        | j                             ¦   «          |S r“   )r�   r�   rr   rg   r   r•   r   r4   r‚   s     r   Ú
revertMenuzMenuEditor.revertMenu  sX   € Ø�>Š>˜$ÑÔ 8Ò+Ð+Ø×Ò˜dœnÔ9ÔBÑCÔCÐCØ!œ^Ô4ˆDŒNØŒI�NŠNÑÔÐØˆr   c                 ór   — |                       |j        |d¬¦  «         | j                             ¦   «          |S )NT)r<   )rK   rA   r   r4   )r   rG   s     r   ÚdeleteSeparatorzMenuEditor.deleteSeparator%  s8   € Ø×Ò˜9Ô+¨Y¸dÐÑCÔCÐCàŒ	�ŠÑÔÐàÐr   c                 óÖ  — t          |t          ¦  «        rˆt          |j        t          ¦  «        sdS |j                             ¦   «         dk    rdS |j                             ¦   «         dk    r/t          |j        ¦  «        t          |j        ¦  «        z   dk    rdS nKt          |t          ¦  «        r6|                     ¦   «         dk    rdS |                     ¦   «         dk    rdS dS dS )NÚnoneÚBothr”   ÚUserr   rŽ   )r   r   rr   r   ÚgetTyperk   ÚSubmenusr˜   )r   Úentrys     r   r�   zMenuEditor.getAction-  sâ   € Ý�e�TÑ"Ô"ð 	Ý˜eœo­yÑ9Ô9ð  Ø�vØ”×(Ò(Ñ*Ô*¨fÒ4Ð4Ø�xØ”×(Ò(Ñ*Ô*¨fÒ4Ð4Ý�E”NÑ#Ô#¥c¨%Ô*;Ñ&<Ô&<Ñ<Øò:ð :ð  �xøå˜�yÑ)Ô)ð 	Ø�}Š}‰Œ &Ò(Ð(Ø�xØ—’‘” FÒ*Ð*Ø�xà�vàˆvr   c                 óX  — |s| j         }t          |j        t          ¦  «        r|j                             ¦   «          |                     d¬¦  «        D ]V}t          |t          ¦  «        r|                     ¦   «          Œ,t          |t          ¦  «        r|                      |¦  «         ŒWd S )NT)rn   )r   r   rr   r   r.   Ú
getEntriesr   r+   )r   r   r¨   s      r   Ú__saveEntrieszMenuEditor.__saveEntriesB  s¨   € Øð 	Ø”9ˆDÝ�d”n¥iÑ0Ô0ð 	"ØŒN×ÒÑ!Ô!Ð!Ø—_’_¨D�_Ñ1Ô1ð 	*ð 	*ˆEÝ˜%¥Ñ+Ô+ð *Ø—
’
‘”��Ý˜E¥4Ñ(Ô(ð *Ø×"Ò" 5Ñ)Ô)Ð)øð		*ð 	*r   c                 ó6  — t           j                             t           j                             | j        ¦  «        ¦  «        s6t          j        t           j                             | j        ¦  «        ¦  «         | j                             | j        d¬¦  «         d S )Nzutf-8)Úencoding)r!   r"   ÚisdirÚdirnamer   Úmakedirsr   Úwriter-   s    r   Ú
__saveMenuzMenuEditor.__saveMenuM  sh   € ÝŒw�}Š}�RœWŸ_š_¨T¬]Ñ;Ô;Ñ<Ô<ð 	8ÝŒK�œŸš¨¬Ñ6Ô6Ñ7Ô7Ð7ØŒ	�Š˜œ°ˆÑ8Ô8Ð8Ð8Ð8r   c                 ó\  — d}	 |dk    r||z   }n|dz   t          |¦  «        z   |z   }|dk    rd}n|dk    rd}|| j        vrdt          j                             t          j                             t          d         ||¦  «        ¦  «        s| j                             |¦  «         n|dz  }Œ¨|S )Nr   r   ú-r0   Úapplicationsrq   zdesktop-directories)Ústrr   r!   r"   Úisfiler#   r	   r™   )r   r6   Ú	extensionÚpostfixr   Údirs         r   Ú__getFileNamezMenuEditor.__getFileNameR  sÈ   € Øˆð	Ø˜!Š|ˆ|Ø )Ñ+��à #™:­¨G©¬Ñ4°yÑ@�Ø˜JÒ&Ð&Ø$��Ø˜lÒ*Ð*Ø+�Ø˜tœ~Ð-Ð-µb´g·n²nÝ”—’�]¨1Ô-¨s°HÑ=Ô=ñ7ô 7Ð-ð ”×%Ò% hÑ/Ô/Ð/Øà˜1‘�ð	ð" ˆr   Tc                 ó|  — |s| j         }d|v r|                     dd¦  «        \  }}n|}d}d }|                     d¦  «        D ]B}|                     d¦  «        }|j        |k    r|r|                      |||¦  «        }n|}|r nŒC|s4|r2|                      ||¦  «        }|r|                      |||¦  «        }n|}|S )Nrs   r   rt   r   rR   )r   r$   r‡   ÚfindÚtextrQ   Ú_MenuEditor__addXmlMenuElement)r   r"   ÚcreateÚelementr6   Úfoundr‹   Ú	name_nodes           r   Ú__getXmlMenuzMenuEditor.__getXmlMenug  s  € ð ð 	 Ø”iˆGà�$ˆ;ˆ;ØŸ:š: c¨1Ñ-Ô-‰LˆT�4�4àˆDØˆDàˆØ—O’O FÑ+Ô+ð 	ð 	ˆDØŸ	š	 &Ñ)Ô)ˆIØŒ~ Ò%Ð%Øð !Ø ×-Ò-¨d°F¸DÑAÔA�E�Eà �EØð Ø�ðàð 	˜ð 	Ø×+Ò+¨G°TÑ:Ô:ˆDØð Ø×)Ò)¨$°¸Ñ=Ô=��à�àˆr   c                 óh   — t          j        d|¦  «        }t          j        d|¦  «        }||_        |S )Nr   rR   ©r%   Ú
SubElementr¾   )r   rÁ   r6   Ú	menu_noderÃ   s        r   Ú__addXmlMenuElementzMenuEditor.__addXmlMenuElement‡  s3   € ÝÔ$ V¨WÑ5Ô5ˆ	ÝÔ$ V¨YÑ7Ô7ˆ	Øˆ	ŒØÐr   c                 ó>   — t          j        ||¦  «        }||_        |S r   rÆ   )r   rÁ   r6   r¾   r‹   s        r   Ú__addXmlTextElementzMenuEditor.__addXmlTextElement�  s    € ÝÔ  gÑ.Ô.ˆØˆŒ	Øˆr   ÚIncludec                 ó4  — |                      d¦  «        }|                      d¦  «        }||z   }|D ]9}|d         j        dk    r&|d         j        |k    r|                     |¦  «         Œ:t	          j        ||¦  «        }|                      |d|¦  «         |S )NrÌ   ÚExcluder   r    )r‡   Útagr¾   rˆ   r%   rÇ   ru   )	r   rÁ   r   Útype_ÚincludesÚexcludesÚrulesÚruler‹   s	            r   Ú__addXmlFilenamezMenuEditor.__addXmlFilename’  s¢   € à—?’? 9Ñ-Ô-ˆØ—?’? 9Ñ-Ô-ˆØ˜8Ñ#ˆØð 	%ð 	%ˆDà�AŒwŒ{˜jÒ(Ð(¨T°!¬W¬\¸XÒ-EÐ-EØ—’˜tÑ$Ô$Ð$øõ Ô  wÑ/Ô/ˆØ× Ò   z°8Ñ<Ô<Ð<Øˆr   c                 óŒ   — t          j        d|¦  «        }|                      |d|¦  «         |                      |d|¦  «         |S )NÚMoveÚOldÚNew)r%   rÇ   ru   )r   rÁ   ÚoldÚnewr‹   s        r   Ú__addXmlMovezMenuEditor.__addXmlMove¨  sI   € ÝÔ ¨Ñ0Ô0ˆØ× Ò   u¨cÑ2Ô2Ð2Ø× Ò   u¨cÑ2Ô2Ð2Øˆr   c                 óì  — |                      d¦  «        D ]}|                     |¦  «         Œt          j        d|¦  «        }|j        D ]©}|d         dk    rt          j        d|¦  «        }Œ$|d         dk    r|                      |d|d         ¦  «        }ŒN|d         dk    r|                      |d|d         ¦  «        }Œx|d         dk    r%t          j        d|¦  «        }|d         |j        d<   Œª|S )	Nr   r   r   r    r   ÚMenunameÚMergeÚtype)r‡   rˆ   r%   rÇ   Úorderru   Úattrib)r   rÁ   Úlayoutr‹   rá   Úchilds         r   Ú__addXmlLayoutzMenuEditor.__addXmlLayout®  s	  € à—O’O HÑ-Ô-ð 	!ð 	!ˆDØ�NŠN˜4Ñ Ô Ð Ð õ Ô ¨'Ñ2Ô2ˆØ”\ð 		0ð 		0ˆEØ�QŒx˜;Ò&Ð&ÝÔ(¨°dÑ;Ô;��Ø�q”˜ZÒ'Ð'Ø×0Ò0°°zÀ5ÈÄ8ÑLÔL��Ø�q”˜ZÒ'Ð'Ø×0Ò0°°zÀ5ÈÄ8ÑLÔL��Ø�q”˜WÒ$Ð$ÝÔ(¨°$Ñ7Ô7�Ø',¨Q¤x�”˜VÑ$øØˆr   c                 ó~  — t          ¦   «         }g |_        |j         j        |_        |j         j        |_        |j         j        |_        |j         j        |_        |j         j        |_        |j                             ddg¦  «         |j        D ]‹}t          |t          ¦  «        r|                     |j        ¦  «         Œ2t          |t          ¦  «        r|                     |j        ¦  «         Œbt          |t           ¦  «        r|                     ¦   «          ŒŒ|j                             ddg¦  «         ||_         |S )Nrß   r   Úfiles)r   rá   Ú
show_emptyÚinlineÚinline_headerÚinline_aliasÚinline_limitr™   r–   r   r   ÚparseMenunamerR   r   ÚparseFilenameÚDesktopFileIDr   ÚparseSeparator)r   r5   rã   r¨   s       r   Ú__addLayoutzMenuEditor.__addLayoutÁ  s!  € Ý‘”ˆØˆŒØ"œMÔ4ˆÔØœÔ,ˆŒØ%œ}Ô:ˆÔØ$œmÔ8ˆÔØ$œmÔ8ˆÔàŒ×Ò˜W gÐ.Ñ/Ô/Ð/Ø”^ð 	(ð 	(ˆEÝ˜%¥Ñ&Ô&ð (Ø×$Ò$ U¤ZÑ0Ô0Ð0Ð0Ý˜E¥9Ñ-Ô-ð (Ø×$Ò$ UÔ%8Ñ9Ô9Ð9Ð9Ý˜E¥9Ñ-Ô-ð (Ø×%Ò%Ñ'Ô'Ð'øØŒ×Ò˜W gÐ.Ñ/Ô/Ð/àˆŒàˆr   c                 óÐ  — |s|rX|r|j                              |¦  «        dz   }n|r|j                              |¦  «        }|j                              ||¦  «         n|j                              |¦  «         |                      |                     dd¦  «        ¦  «        }t          |t          ¦  «        rQ|j                             |¦  «         |j	                             |¦  «         |  
                    ||j        d¦  «         n*t          |t          ¦  «        r|                     |¦  «         |s|r2|                      |¦  «         |                      ||j        ¦  «         d S d S )Nr   TrÌ   )r–   r—   Úinsertr™   rQ   rS   r   r   r˜   rl   Ú_MenuEditor__addXmlFilenamerï   r   Ú
addSubmenuÚ_MenuEditor__addLayoutÚ_MenuEditor__addXmlLayoutr   )r   r5   r¨   r<   r=   r—   Ú
xml_parents          r   Ú
__addEntryzMenuEditor.__addEntryØ  sr  € Øð 	)�Fð 	)Øð 5Øœ×,Ò,¨UÑ3Ô3°aÑ7��Øð 5Øœ×,Ò,¨VÑ4Ô4�ØŒN×!Ò! %¨Ñ/Ô/Ð/Ð/àŒN×!Ò! %Ñ(Ô(Ð(à×&Ò& v§~¢~°d¸DÑ'AÔ'AÑBÔBˆ
å�e�YÑ'Ô'ð 	%ØÔ×%Ò% eÑ,Ô,Ð,ØŒM× Ò  Ñ(Ô(Ð(Ø×!Ò! *¨eÔ.AÀ9ÑMÔMÐMÐMÝ˜�tÑ$Ô$ð 	%Ø×Ò˜eÑ$Ô$Ð$àð 	;�Fð 	;Ø×Ò˜VÑ$Ô$Ð$Ø×Ò 
¨F¬MÑ:Ô:Ð:Ð:Ð:ð	;ð 	;r   c                 ó"  — |j                              |¦  «         |                      |                     dd¦  «        ¦  «        }t	          |t
          ¦  «        rQ|j                             |¦  «         |j                             |¦  «         |                      ||j	        d¦  «         n/t	          |t          ¦  «        r|j                             |¦  «         |s|r2|                      |¦  «         |                      ||j        ¦  «         d S d S )NTrÎ   )r–   rˆ   rQ   rS   r   r   rl   r˜   rô   rï   r   r§   rö   r÷   r   )r   r5   r¨   r<   r=   rø   s         r   Ú__deleteEntryzMenuEditor.__deleteEntryï  s	  € ØŒ×Ò˜eÑ$Ô$Ð$à×&Ò& v§~¢~°d¸DÑ'AÔ'AÑBÔBˆ
å�e�YÑ'Ô'ð 	*ØŒM× Ò  Ñ(Ô(Ð(ØÔ×%Ò% eÑ,Ô,Ð,Ø×!Ò! *¨eÔ.AÀ9ÑMÔMÐMÐMÝ˜�tÑ$Ô$ð 	*ØŒO×"Ò" 5Ñ)Ô)Ð)àð 	;�Fð 	;Ø×Ò˜VÑ$Ô$Ð$Ø×Ò 
¨F¬MÑ:Ô:Ð:Ð:Ð:ð	;ð 	;r   c                 óª   — 	 t          j        |¦  «         n# t          $ r Y nw xY w	 | j                             |¦  «         d S # t          $ r Y d S w xY wr   )r!   rˆ   ÚOSErrorr   Ú
ValueError)r   r   s     r   Ú__deleteFilezMenuEditor.__deleteFileÿ  s}   € ð	ÝŒI�hÑÔÐÐøÝð 	ð 	ð 	ØˆDð	øøøð	ØŒN×!Ò! (Ñ+Ô+Ð+Ð+Ð+øÝð 	ð 	ð 	ØˆDˆDð	øøøs   ‚ —
$£$¨A Á
AÁAc                 óà   — |D ]j}|j                              ¦   «         }|sd|_         |j                             ¦   «         }|sd|_        t          |¦  «        r|                      |¦  «         Œkd S )Nrt   )r¾   ÚstripÚtailrk   Ú$_MenuEditor__remove_whilespace_nodes)r   r‹   rä   r¾   r  s        r   Ú__remove_whitespace_nodesz$MenuEditor.__remove_whitespace_nodes	  s‚   € Øð 	6ð 	6ˆEØ”:×#Ò#Ñ%Ô%ˆDØð  Ø�”
Ø”:×#Ò#Ñ%Ô%ˆDØð  Ø�”
Ý�5‰zŒzð 6Ø×.Ò.¨uÑ5Ô5Ð5øð	6ð 	6r   c                 óJ   — |                       ¦   «         D ]\  }}||u r|c S Œd S r   )Ú_MenuEditor__iter_parent)r   r‹   r5   rä   s       r   Ú__get_parent_nodezMenuEditor.__get_parent_node  sB   € à!×/Ò/Ñ1Ô1ð 	ð 	‰MˆF�EØ˜ˆ}ˆ}Ø���ð ð	ð 	r   c              #   óX   K  — | j                              ¦   «         D ]}|D ]}||fV — Œ	Œd S r   )r   Úgetiterator)r   r5   rä   s      r   Ú__iter_parentzMenuEditor.__iter_parent  sT   è è € Ø”i×+Ò+Ñ-Ô-ð 	$ð 	$ˆFØð $ð $�Ø˜e�mÐ#Ð#Ð#Ð#ð$ð	$ð 	$r   )NNF)NNNNNNN)NNNNN)NN)NNNNNNNN)NNNNNN)TN)rÌ   ))Ú__name__Ú
__module__Ú__qualname__r   r   r.   r?   rE   rH   rO   rV   rX   rZ   r2   rD   r}   r€   rƒ   rŒ   r‘   rš   r�   rŸ   r¡   r�   r+   r,   r1   rQ   r¿   ru   rô   rT   r÷   rö   r3   rK   r�   r)   rœ   r  © r   r   r   r      s¥  € € € € € ðð ð ð ð!2ð !2ð !2ð !2ðFð ð ðð ð ð ðð ð ð ð ð ð ð ðð ð ð ð
ð 
ð 
ð 
ðð ð ð ðð ð ð ð(ð (ð (ð (ðT1ð 1ð 1ð 1ðf6ð 6ð 6ðEð Eð Eð,ð ,ð ,ð"ð "ð "ðð ð ðð ð ðð ð ðð ð ðð ð ð ðð ð ð*	*ð 	*ð 	*ð9ð 9ð 9ð
ð ð ð*ð ð ð ð@ð ð ðð ð ð
ð ð ð ð,ð ð ðð ð ð&ð ð ð.;ð ;ð ;ð ;ð.;ð ;ð ;ð ;ð ð ð ð	6ð 	6ð 	6ðð ð ð$ð $ð $ð $ð $r   r   )Ú__doc__r!   Úxml.etree.cElementTreer%   ÚcElementTreeÚImportErrorÚxml.etree.ElementTreer(   Úxdg.Menur   r   r   r   r   Úxdg.BaseDirectoryr   r	   Úxdg.Exceptionsr
   Ú
xdg.Configr   Úobjectr   r  r   r   ú<module>r     s  ðØ Ð Ø 	€	€	€	ð*Ø*Ð*Ð*Ð*Ð*Ð*Ð*Ð*Ð*Ð*øØð *ð *ð *Ø)Ð)Ð)Ð)Ð)Ð)Ð)Ð)Ð)Ð)Ð)ð*øøøð HÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GØ <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø "Ð "Ð "Ð "Ð "Ð "ðE$ð E$ð E$ð E$ð E$�ñ E$ô E$ð E$ð E$ð E$s   ˆ	 ’#¢#