o
    Q`T  ã                   @   s^   d dl mZ d dlZd dlZe dd¡ d dlmZ d dlmZ d dl	m
Z
 G dd	„ d	ƒZdS )
é    )Úprint_functionNÚGtkz3.0)r   )ÚSourceEntry)Úsetup_uic                   @   s,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
Ú
DialogEditc                 C   s  || _ || _t| tj |dd¡dd | j| _| j |¡ |j	dkr)| j
 d¡ n|j	dkr5| j
 d¡ ntd	|j	 ƒ | j |j¡ | j |j¡ d
}|jD ]}t|ƒdkr^|d | }qO|}qO| j |¡ | j |j¡ | j| j| j| jfD ]	}| d| j¡ qxd S )NZ
gtkbuilderzdialog-edit-source.uizsoftware-properties)ÚdomainZdebr   zdeb-srcé   z Error, unknown source type: '%s'Ú ú Zchanged)ÚsourceslistÚsource_entryr   ÚosÚpathÚjoinZdialog_editÚmainZset_transient_forÚtypeÚcombobox_typeZ
set_activeÚprintÚ	entry_uriZset_textZuriÚ
entry_distZdistÚcompsÚlenÚentry_compsÚentry_commentZcommentZconnectÚ
check_line)ÚselfÚparentr   r   Zdatadirr   ÚcÚentry© r   úC/usr/lib/python3/dist-packages/softwareproperties/gtk/DialogEdit.pyÚ__init__&   s,   


ÿzDialogEdit.__init__c                 G   sR   |   ¡ }|dkr| j d¡ dS t|ƒ}|jdkr!| j d¡ dS | j d¡ dS )z[Check for a valid apt line and set the sensitiveness of the
       button 'add' accordinglyFNT)Úget_lineZbutton_edit_okZset_sensitiver   Zinvalid)r   ÚargsÚliner   r   r   r    r   J   s   
zDialogEdit.check_linec                 C   s0  | j jdkr	d}nd}| j ¡ dkrd| }nd| }| j ¡ }t|ƒdk s4| d¡d	ks4| d¡d	kr6d
S |d | j ¡  }| j ¡ }t|ƒdk sX| d¡d	ksX| d¡d	krZd
S |d | j ¡  }| j	 ¡ }| d¡d	krqd
S |dkr~|d | j	 ¡  }| j
 ¡ dkr’|d | j
 ¡  d }|S |d }|S )z:Collect all values from the entries and create an apt lineTú#r	   r   z%sdebz	%sdeb-srcr   r
   éÿÿÿÿFz #Ú
)r   Zdisabledr   Z
get_activer   Zget_textr   Úfindr   r   r   )r   r$   Útextr   r   r    r"   W   s0   

(
(
ÿzDialogEdit.get_linec                 C   sd   | j  ¡ }|tjjkr+|  ¡ }| jj | j	¡}| jj| j
}t||ƒ| _| j| jj|< | j  ¡  |S )N)r   Úrunr   ZResponseTypeZOKr"   r   ÚlistÚindexr   Úfiler   Znew_source_entryZhide)r   Úresr$   r,   r-   r   r   r    r*   y   s   

zDialogEdit.runN)Ú__name__Ú
__module__Ú__qualname__r!   r   r"   r*   r   r   r   r    r   %   s
    $"r   )Z
__future__r   r   ZgiZrequire_versionZgi.repositoryr   Zaptsources.sourceslistr   Zsoftwareproperties.gtk.utilsr   r   r   r   r   r    Ú<module>   s   