3
ZK                 @   s   d dl T d dlmZ d dlZd dlZd dlZejd G dd deZdd Z	G d	d
 d
Z
G dd de
ZG dd deZG dd de
ZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZdS )    )*)GtkNz1.9.55c               @   s$   e Zd Zdd Zdd Zdd ZdS )IPPResolutionc       	      C   s   t jdt jdi| _t j| _i | _x | jj D ]\}}|| j|< q,W t|trt	j
d|j }t|d }t|d }| jj|d | j}n|d }|d }|d }tj| |||f}||_||_||_|S )Ndpidpcz(\d+)\D+(\d+)(.*)r         )cupsIPP_RES_PER_INCHIPP_RES_PER_CMUNITS_BY_VALUNITS_DEFAULTUNITS_BY_STRitems
isinstancestrrematchgroupsintgettuple__new__xresyresunits)	clsvaluesvsmatchesr   r   r   self r"   +/usr/share/system-config-printer/options.pyr       s&    
zIPPResolution.__new__c             C   s   t j| j| j| jfS )N)r   __init__r   r   r   )r!   r   r"   r"   r#   r$   9   s    zIPPResolution.__init__c             C   s    d| j | j| jj| j| jf S )Nz%sx%s%s)r   r   r   r   r   r   )r!   r"   r"   r#   __str__<   s    

zIPPResolution.__str__N)__name__
__module____qualname__r   r$   r%   r"   r"   r"   r#   r      s   r   c             C   s  t |trTt |trBx|| D ]}t |tstqW t| |||S t|| tnt |tst |tst |t	ot
|dkot |d trt |d tst |d tot |d tr y8t |tst |t	rt |d trt|}nt|}W n  tk
r   t| |d|S X t| |||S t |trxP|D ]H}t |t	r^t
|dkr^t| |||S t |ts2t| |||S q2W yt|}W n  tk
r   t| |||S X t| |||S t |trt| |||S td S )Nr   r   r       )r   listr   
ValueErrorOptionSelectManyprintNotImplementedErrorr   floatr   len
OptionTextOptionNumericOptionSelectOneResolutionOptionSelectOneOptionSelectOneNumber)namer   r   	on_changeZvvZsvr"   r"   r#   OptionWidgetA   sH    


 






r9   c               @   s$   e Zd Zdd Zdd Zdd ZdS )OptionInterfacec             C   s   d S )Nr"   )r!   r"   r"   r#   get_defaultm   s    zOptionInterface.get_defaultc             C   s   t d S )N)r/   )r!   r"   r"   r#   get_current_valuep   s    z!OptionInterface.get_current_valuec             C   s   t d S )N)r/   )r!   r"   r"   r#   
is_changeds   s    zOptionInterface.is_changedN)r&   r'   r(   r;   r<   r=   r"   r"   r"   r#   r:   l   s   r:   c               @   sl   e Zd ZdZdZdZdddZdd	 Zd
d ZdddZ	dd Z
dd Zdd Zdd Zdd Zdd ZdS )OptionAlwaysShownr   r   r   NFc             C   s   || _ || _|| _|tkr&dd }|}|| _| j| || _t| jtj	kr~| jj
 d kr~td| j   tjt}	| jj|	 |d k	r|tkr| jj
 }	d}
i }|	j }x.|r|	j|d|||
 < |
d7 }
|	j|}qW || _|| _| jd  d S )Nc             S   s(   t | tkr | j dkrdS dS t| S )NfalsenooffFT)r?   r@   rA   )typer   lowerbool)xr"   r"   r#   	bool_type   s
    z-OptionAlwaysShown.__init__.<locals>.bool_typezNo ComboBox model for %sr   r   )r7   widgetbuttonrD   ipp_typeset_defaultcombobox_maprB   r   ComboBox	get_model
debugprintZ	ListStorer   Z	set_modelr   get_iter_first	get_value	iter_nextcombobox_dictuse_supportedreinit)r!   r7   rI   system_defaultrG   rH   rK   rS   rF   modelidictiterr"   r"   r#   r$   |   s4    


zOptionAlwaysShown.__init__c             C   s   | j S )N)rU   )r!   r"   r"   r#   r;      s    zOptionAlwaysShown.get_defaultc             C   s   | j || _d S )N)rI   rU   )r!   rU   r"   r"   r#   rJ      s    zOptionAlwaysShown.set_defaultc       
      C   s,  |dk	o| j rt| jtjkr| jtkr| jj }|j  t	j
j| j}|r`g | _t | _d}xb|D ]Z}t| j|}|r| jj| |j|}|| j|< |d7 }n|}|j }	|j|	d| qfW n
t| jtjkrj| jj  t	j
j| j}|r
g | _t | _d}x|D ]T}t| j|}|rR| jj| |j|}|| j|< |d7 }n|}| jj| qW nht| jtjkr| jtkr| jdk	r| jj }|j  x*|D ]"}|j }	|j|	d| j|  qW |dk	r| j|| _| j| j | jjd nd| _| j| j | jjd | j| _dS )zSet the original value of the option and the supported choices.
        The special value None for original_value resets the option to the
        system default.Nr   r   TF)rS   rB   rG   r   rL   rI   r   rM   clear	ppdippstrZjob_optionsr   r7   rK   rX   rR   append	set_valueComboBoxTextZ
remove_allappend_textr   original_valueset_widget_valuerH   set_sensitiverU   STATE_UNCHANGEDstate)
r!   r`   	supportedrV   ZtranslationsrW   ZeachZtxttextrY   r"   r"   r#   rT      sj    













zOptionAlwaysShown.reinitc             C   s   t | j}|tjkr | jj|S |tjks4|tjkr| jtksH| jt	kr| j
d kr| jj }|j }x,|d k	r| j|j|d|kr|j|}qfW |r| jj| q| j
r| j
j|}n|}| jj|S n"|tjkr| jj|S t|| jd S )Nr   )rB   rG   r   
SpinButtonr]   rL   r^   rI   r   r   rK   rM   rO   rP   rQ   set_active_iterindex
set_activeCheckButtonr/   r7   )r!   Z	ipp_valuetrV   rY   ri   r"   r"   r#   ra      s(    





z"OptionAlwaysShown.set_widget_valuec             C   s   t | j}|tjkrHy| j| jj S  tk
rD   | j| jj S X n|tjkrx| j	rh| j	| jj
  S | j| jj
 S |tjkr| jj }|d kr| j}| j	r| j	|S | j|S |tjkr| j| jj
 S t|| j| j td S )N)rB   rG   r   rg   rI   get_textr,   rP   rL   rK   
get_activer^   get_active_textrU   rk   r.   r/   )r!   rl   r   r"   r"   r#   get_widget_value  s*    







z"OptionAlwaysShown.get_widget_valuec             C   s   | j  S )N)rp   )r!   r"   r"   r#   r<   )  s    z#OptionAlwaysShown.get_current_valuec             C   sT   | j d k	r@| j| jkrdS | j| jkr<| j | j kr8dS dS dS | j| jkrPdS dS )NTF)r`   rd   STATE_RESETSTATE_ADJUSTEDr<   )r!   r"   r"   r#   r=   ,  s    
zOptionAlwaysShown.is_changedc             C   s$   | j | j | j| _| jjd d S )NF)ra   rU   rq   rd   rH   rb   )r!   r"   r"   r#   resetB  s    zOptionAlwaysShown.resetc             C   s   | j | _| jjd d S )NT)rr   rd   rH   rb   )r!   r"   r"   r#   changedG  s    zOptionAlwaysShown.changed)NF)N)r&   r'   r(   rc   rq   rr   r$   r;   rJ   rT   ra   rp   r<   r=   rs   rt   r"   r"   r"   r#   r>   v   s   
$
C"r>   c               @   s@   e Zd ZdddZdd Zdd	 Zdd
dZdd Zdd ZdS )OptionAlwaysShownSpecialNFSystem defaultc	       	   
   C   s*   || _ d| _tj| |||||||d d S )NF)rK   rS   )special_choicespecial_choice_shownr>   r$   )	r!   r7   rI   rU   rG   rH   rK   rS   rw   r"   r"   r#   r$   L  s    z!OptionAlwaysShownSpecial.__init__c             C   sH   | j r
d S d| _ | jj }|jd}|j|d| j | jj|j  d S )NTr   )rx   rG   rM   insertr]   rw   rh   rO   )r!   rV   rY   r"   r"   r#   show_special_choiceV  s    

z,OptionAlwaysShownSpecial.show_special_choicec             C   s,   | j s
d S d| _ | jj }|j|j  d S )NF)rx   rG   rM   removerO   )r!   rV   r"   r"   r#   hide_special_choicea  s
    
z,OptionAlwaysShownSpecial.hide_special_choicec             C   s.   |d k	r| j   n| j  tj| ||d d S )N)re   )r|   rz   r>   rT   )r!   r`   re   r"   r"   r#   rT   j  s    
zOptionAlwaysShownSpecial.reinitc             C   s   | j   tj|  d S )N)rz   r>   rs   )r!   r"   r"   r#   rs   r  s    zOptionAlwaysShownSpecial.resetc             C   s$   t j|  | jj dkr | j  d S )Nr   )r>   rt   rG   rn   r|   )r!   r"   r"   r#   rt   v  s    
z OptionAlwaysShownSpecial.changed)NFrv   )N)	r&   r'   r(   r$   rz   r|   rT   rs   rt   r"   r"   r"   r#   ru   K  s    
	
ru   c               @   s0   e Zd ZdZdd Zdd Zdd Zdd	 ZdS )
OptionNc             C   sT   || _ || _|| _|| _d| _|}|jds4|d7 }tj|d| _| jj	dd d S )NF:)labelg        g      ?)
r7   valuere   r8   is_newendswithr   ZLabelr   Zset_alignment)r!   r7   r   re   r8   r   r"   r"   r#   r$     s    
zOption.__init__c             C   s   t d S )N)r/   )r!   r"   r"   r#   r<     s    zOption.get_current_valuec             C   s   | j pt| j t| jkS )N)r   r   r<   r   )r!   r"   r"   r#   r=     s    zOption.is_changedc             G   s   | j |  d S )N)r8   )r!   rG   argsr"   r"   r#   rt     s    zOption.changed)r&   r'   r(   Z	conflictsr$   r<   r=   rt   r"   r"   r"   r#   r}   {  s
   r}   c               @   s   e Zd Zdd Zdd ZdS )r5   c             C   s   t j| |||| tj | _d }x8t|D ],\}}| jjt| t|t|kr*|}q*W |d k	rp| jj| n@t	d||f  t	d| t
|dkrt	d|d  | jjd | jjd| j d S )NzUnknown value for %s: %szChoices:r   zSelecting from choices:rt   )r}   r$   r   r^   selector	enumerater_   r   rj   rN   r1   connectrt   )r!   r7   r   re   r8   ZselectedZnrZchoicer"   r"   r#   r$     s    

zOptionSelectOne.__init__c             C   s
   | j j S )N)r   ro   )r!   r"   r"   r#   r<     s    z!OptionSelectOne.get_current_valueN)r&   r'   r(   r$   r<   r"   r"   r"   r#   r5     s   r5   c               @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
r4   c             C   sr   t jdt jdi| _t j| _i | _x | jj D ]\}}|| j|< q,W | j|}tt	| j|}t
j| |||| d S )Nr   r   )r	   r
   r   r   r   r   r   stringr+   mapr5   r$   )r!   r7   r   re   r8   r   r   r"   r"   r#   r$     s    
z"OptionSelectOneResolution.__init__c             C   s$   d|d |d | j j|d df S )Nz%sx%s%sr   r   r   r)   )r   r   )r!   r   r"   r"   r#   r     s    z OptionSelectOneResolution.stringc             C   s:   t jd|j }t|d t|d | jj|d | jfS )Nz(\d+)\D+(\d+)(.*)r   r   r   )r   r   r   r   r   r   r   )r!   r   r    r"   r"   r#   r     s    zOptionSelectOneResolution.valuec             C   s   | j | jj S )N)r   r   ro   )r!   r"   r"   r#   r<     s    z+OptionSelectOneResolution.get_current_valueN)r&   r'   r(   r$   r   r   r<   r"   r"   r"   r#   r4     s   r4   c               @   s   e Zd Zdd ZdS )r6   c             C   s   t | jj pdS )Nr   )r   r   ro   )r!   r"   r"   r#   r<     s    z'OptionSelectOneNumber.get_current_valueN)r&   r'   r(   r<   r"   r"   r"   r#   r6     s   r6   c               @   s   e Zd Zdd Zdd ZdS )r-   c             C   sv   t j| |||| g | _tj }xJ|D ]B}tjj|}|j||k |j| |j	d| j
 | jj| q&W || _d S )NZtoggled)r}   r$   
checkboxesr   ZVBoxrk   Znew_with_labelrj   addr   rt   r\   r   )r!   r7   r   re   r8   Zvboxr   Zcheckboxr"   r"   r#   r$     s    

zOptionSelectMany.__init__c             C   s   dd t | j| jD S )Nc             S   s   g | ]\}}|j  r|qS r"   )rn   ).0r   Zchkr"   r"   r#   
<listcomp>  s    z6OptionSelectMany.get_current_value.<locals>.<listcomp>)zipre   r   )r!   r"   r"   r#   r<     s    z"OptionSelectMany.get_current_valueN)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S )r3   c             C   s   t |tp t |to t |d t| _| jr0d}nd}t |tsFd|f}tj| |||| tj||d |d dddd}tj | _	| j	j
| | j	j| | js| j	jd | j	jd	| j d S )
Nr   r   r   g      ?g      @g        )r   rC   upperZstep_incrementZpage_incrementZ	page_sizeTrt   )r   r0   r   is_floatr}   r$   r   Z
Adjustmentrg   r   Zset_adjustmentZ
set_digitsZset_numericr   rt   )r!   r7   r   re   r8   ZdigitsZadjr"   r"   r#   r$     s$    




zOptionNumeric.__init__c             C   s   | j r| jj S | jj S )N)r   r   rP   Zget_value_as_int)r!   r"   r"   r#   r<     s    
zOptionNumeric.get_current_valueN)r&   r'   r(   r$   r<   r"   r"   r"   r#   r3     s   r3   c               @   s   e Zd Zdd Zdd ZdS )r2   c             C   s<   t j| |||| tj | _| jj| | jjd| j d S )Nrt   )r}   r$   r   ZEntryr   Zset_textr   rt   )r!   r7   r   re   r8   r"   r"   r#   r$   	  s    
zOptionText.__init__c             C   s
   | j j S )N)r   rm   )r!   r"   r"   r#   r<     s    zOptionText.get_current_valueN)r&   r'   r(   r$   r<   r"   r"   r"   r#   r2     s   r2   )debugZgi.repositoryr   r	   r[   r   Zrequirer   r   r9   r:   r>   ru   r}   r5   r4   r6   r-   r3   r2   r"   r"   r"   r#   <module>   s$   
"+
 V0