← Back
Editing: MenuEditor.cpython-311.pyc
� �u�c�I � � � d Z ddlZ ddlmc mZ n# e$ r ddlmc mZ Y nw xY wddlm Z m Z mZmZm Z ddlmZmZ ddlmZ ddlmZ G d� de� � ZdS ) z CLass to edit XDG Menus � N)�Menu� MenuEntry�Layout� Separator�XMLMenuBuilder)�xdg_config_dirs� xdg_data_dirs)�ParsingError)�setRootModec � � e Zd Zd+d�Zd+d�Zd� Zd,d�Zd-d�Zd.d�Zd.d �Z d.d �Z d.d�Zd.d�Zd/d �Z d0d�Zd� Zd� Zd� Zd� Zd� Zd� Zd� Zd� Zd� Z d� Zd� Zd� Zd� Zd1d�Zd� Zd� Zd2d!�Zd"� Z d#� Z!d$� Z"d.d%�Z#d.d&�Z$d'� Z%d(� Z&d)� Z'd*� Z(dS )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__zMenuEditor.__init__ sG � ��� ��� ��� �$�&�&���� � �4��4�(�(�(� ����� c � � |rt d� � t |t � � r|| _ n@|r | j � |� � | _ n| j � � � | _ |r| j j | _ nh|r|| _ n^t j � t d dt 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 xY 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> zNot 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 zMenuEditor.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 �AE0�E0c �b � | � | j � � | � � � d S r )�_MenuEditor__saveEntriesr �_MenuEditor__saveMenu�r s r �savezMenuEditor.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 �createMenuEntryzMenuEditor.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 dz |_ |j |_ |j |_ | � |||||� � }| � ||||� � | j � � � |S )Nr ) r �Parent�Depth� DefaultLayoutr �editMenur3 r r4 ) r r5 r6 r8 r9 r: r<