3
Z                 @   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   yt jd }W n@ tk
rN   y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 yt| j }|j }W n tk
r4   d S X x:tt|D ]*}|| jdrDd|| dd   ||< qDW t| j dj| d S )Nz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 yt| j }|j }W n tk
r4   d S X xntt|D ]^}|| jdrD|| dd  }|jd}|dkr|d | jd}n
|jd}|d | S qDW d S )NzDefault 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}|j \}}|j }|dkrNt||j j 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 | j  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}
|
jtjtjjtj	tjj
 |
jtjj
 |
jd |
jd tjjdd}|jd tj }|jtjtjj |jdd |j|ddd tjjdd}tj }|jd| d	  |jd |jdd |j|ddd tjjdd}tjjd |}|j|ddd tjj|}tjjdddd}|jdddd |j | |j|ddd |j|ddd tjj!||	}|j|ddd |j|ddd |
j"j|ddd |j#d |j#d t$ | _%|j&| j%j' d k	 || _(|| _)|| _*|j+d
| j, |
j+d| j- |
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   [   sb    







zUserDefaultPrompt.__init__c             C   s$   | j j| jj d k	o| j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|j  d S | jj rD| jj r6| jj  | j	| j
 nNy| jj| j
 W n2 tk
r } ztdt|  W Y d d }~X nX | j  |j  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