U
    9¡_Í  ã                   @   s<   d dl mZ d dlZd dlZG dd„ dƒZG dd„ dƒZdS )é    )ÚGtkNc                   @   s4   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ ZdS )ÚUserDefaultPrinterc                 C   sf   zt jd }W n@ tk
rN   zdt jd  }W n tk
rH   d }Y nX Y nX |r\|d7 }|| _d S )NÚHOMEz/home/ZUSERz/.cups/lpoptions)ÚosÚenvironÚKeyErrorÚ	lpoptions)Úselfr   © r
   ú//usr/share/system-config-printer/userdefault.pyÚ__init__   s    zUserDefaultPrinter.__init__c                 C   s†   | j s
d S zt| j ƒ}| ¡ }W n tk
r6   Y d S X tt|ƒƒD ]*}||  d¡rDd|| dd …  ||< qDt| j dƒ |¡ d S )NúDefault zDest é   Úw)r   ÚopenÚ	readlinesÚIOErrorÚrangeÚlenÚ
startswithÚ
writelines)r	   Úopt_fileÚoptsÚir
   r
   r   Úclear'   s    
zUserDefaultPrinter.clearc                 C   s¬   | j s
d S zt| j ƒ}| ¡ }W n tk
r6   Y d S X tt|ƒƒD ]b}||  d¡rD|| dd … }| d¡}|dkrŒ|d |…  d¡}n
| d¡}|d |…   S qDd S )Nr   r   ú/éÿÿÿÿú )r   r   r   r   r   r   r   Úfind)r	   r   r   r   ÚrestZslashZspacer
   r
   r   Úget6   s     


zUserDefaultPrinter.getc                 C   sR   t jdd|gdt jt jt jd}| ¡ \}}| ¡ }|dkrNt|| ¡  ¡ ƒ‚d S )Nr   z-dT)Z	close_fdsÚstdinÚstdoutÚstderrr   )	Ú
subprocessÚPopenZDEVNULLÚPIPEZcommunicateÚwaitÚRuntimeErrorÚdecodeÚstrip)r	   ÚdefaultÚpr"   r#   Zexitcoder
   r
   r   ÚsetK   s    üzUserDefaultPrinter.setc                 C   s   dt |  ¡ ƒ S )Nz<UserDefaultPrinter (%s)>)Úreprr    )r	   r
   r
   r   Ú__repr__W   s    zUserDefaultPrinter.__repr__N)Ú__name__Ú
__module__Ú__qualname__r   r   r    r-   r/   r
   r
   r
   r   r      s
   r   c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚUserDefaultPromptc
                 C   s,  || _ || _|| _tj||ddd}
|
 tjtjjtj	tjj
¡ |
 tjj
¡ |
 d¡ |
 d¡ tj dd¡}| d¡ t ¡ }| tjtjj¡ | dd¡ | |ddd¡ tj dd¡}t ¡ }| d| d	 ¡ | d¡ | dd¡ | |ddd¡ tj dd¡}tj d |¡}| |ddd¡ tj |¡}tj dddd¡}| dddd¡ |  |¡ | |ddd¡ | |ddd¡ tj !||	¡}| |ddd¡ | |ddd¡ |
j" |ddd¡ | #d¡ | #d¡ t$ƒ | _%| &| j% '¡ d k	¡ || _(|| _)|| _*| +d
| j,¡ |
 +d| j-¡ |
 .¡  d S )NT)ÚtitleZtransient_forZmodalZdestroy_with_parenté   Fé   g        r   z"<span weight="bold" size="larger">z</span>ZtoggledZresponse)/Úset_default_fnÚ
refresh_fnÚnamer   ZDialogZadd_buttonsZSTOCK_CANCELÚResponseTypeZCANCELZSTOCK_OKÚOKZset_default_responseZset_border_widthZset_resizableZHBoxÚnewZImageZset_from_stockZSTOCK_DIALOG_QUESTIONZIconSizeZDIALOGZset_alignmentZ
pack_startZVBoxZLabelZ
set_markupZset_line_wrapZRadioButtonZnew_with_mnemonicZCheckButtonZ	AlignmentZset_paddingÚaddZnew_with_mnemonic_from_widgetZvboxZ
set_activer   ÚuserdefÚset_sensitiver    Ú
systemwideÚclearpersonalÚpersonalZconnectÚ
on_toggledÚon_responseZshow_all)r	   r7   r8   r9   r4   ÚparentZprimarylabelZsystemwidelabelZclearpersonallabelZpersonallabelÚdialogZhboxZimageZ	vboxouterZprimaryZ	vboxradior@   rA   Z	alignmentrB   r
   r
   r   r   [   sp    
ý ÿ


ÿÿ

ÿ

zUserDefaultPrompt.__init__c                 C   s$   | j  | j ¡ d k	o| j ¡ ¡ d S )N)rA   r?   r>   r    r@   Ú
get_active)r	   Zbuttonr
   r
   r   rC   ˜   s    ÿzUserDefaultPrompt.on_toggledc              
   C   sž   |t jjkr| ¡  d S | j ¡ rD| j ¡ r6| j ¡  |  	| j
¡ nNz| j | j
¡ W n2 tk
rˆ } ztdt|ƒ ƒ W 5 d }~X Y nX |  ¡  | ¡  d S )NzError setting default: %s)r   r:   r;   Zdestroyr@   rG   rA   r>   r   r7   r9   r-   Ú	ExceptionÚprintr.   r8   )r	   rF   Zresponse_idÚer
   r
   r   rD   œ   s    


"zUserDefaultPrompt.on_responseN)r0   r1   r2   r   rC   rD   r
   r
   r
   r   r3   Z   s   =r3   )Zgi.repositoryr   r   r$   r   r3   r
   r
   r
   r   Ú<module>   s   B